java ldap 客户端
时间: 2023-09-05 14:11:25 浏览: 97
Java提供了一些API来进行LDAP操作,可以使用JNDI(Java Naming and Directory Interface)来实现LDAP客户端。以下是一个简单的例子:
1. 导入必要的类和包:
```java
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;
```
2. 创建连接和进行身份认证:
```java
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=my-domain,dc=com");
env.put(Context.SECURITY_CREDENTIALS, "password");
DirContext ctx = new InitialDirContext(env);
```
3. 查询LDAP:
```java
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String baseDN = "dc=my-domain,dc=com";
String filter = "(objectclass=inetOrgPerson)";
NamingEnumeration<SearchResult> results = ctx.search(baseDN, filter, searchControls);
while (results.hasMoreElements()) {
SearchResult searchResult = results.nextElement();
Attributes attributes = searchResult.getAttributes();
Attribute attribute = attributes.get("cn");
String cn = (String) attribute.get();
System.out.println(cn);
}
```
这个例子只是演示了如何连接和查询LDAP,实际使用中可能需要进行更多的操作,比如添加、修改和删除条目等。可以根据具体需求来使用不同的API。
阅读全文