java.naming.provider.url = ldap://192.168.1.118:389/ou=people,cn=EnterpriseLdap,cn=com,o=lan java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory java.naming.authoritative = simple java.naming.security.principal = cn=admin java.naming.security.credentials = ldapadmin #之前写成这样怎么都不行 java.naming.provider.url = ldap://192.168.1.118:389/ java.naming.security.principal = cn=admin,ou=people,cn=EnterpriseLdap,cn=com,o=lan
由于之前没接触过ladp,不知道DN的一些属性具体含义,没有连接成功
DirContext ctx = null;
try {
ctx = new InitialDirContext();
System.out.println("sucess");
} catch (AuthenticationException e) {
System.out.println("认证失败");
e.printStackTrace();
} catch (NamingException e){
System.out.println("连接出错");
e.printStackTrace();
}
NamingEnumeration<SearchResult> en = ctx.search("", "uid=*",constraints);
int i = 0;
while(en!=null&&en.hasMoreElements()){
SearchResult sr = en.nextElement();
System.out.println("name:"+ sr.getName());
Attributes attrs = sr.getAttributes();
for(NamingEnumeration attrEnum= attrs.getAll();attrEnum.hasMoreElements();){
Attribute attr = (Attribute) attrEnum.next();
String attrId = attr.getID();
for(NamingEnumeration values = attr.getAll();values.hasMoreElements();){
Object o = values.nextElement();
System.out.print(attrId+"=");
if(o instanceof byte[])
System.out.println(new String((byte[])o));
else
System.out.println(o);
}
}
}
添加和删除就比较简单了
本文介绍如何使用Java连接LDAP服务器,并通过LDAP查询用户信息。包括配置JNDI属性、建立初始上下文连接、搜索用户信息及解析返回结果。
256

被折叠的 条评论
为什么被折叠?



