您好我是开发人员,但对ldap编程很新。我能够通过提供DN = ou = app1,ou = development,ou = Group并将我的搜索级别设置为subtree_scope来获得我们的Ldap服务器,并且能够达到降低级别,这使我处于DN=cn=admin,DN=ou=app1,ou=development,ou=Group
。通过展开此DN,我会看到Member(4)
,OU(1)
,cn(1)
和对象类:top
和groupOfNames
。我正在尝试使用uid=user
条目访问4个用户。我尝试访问uid
时收到以下消息:
UID ... class javax.naming.directory.SearchResult
空 找到cn = Admin:
以下是我的代码片段。如果需要,我可以提供更多
controls.setReturningAttributes("uid");
String filter="(objectClass=groupOfNames)";
NamingEnumeration objs = ctx.search("",filter, controls);
while (objs.hasMoreElements())
{
SearchResult match = (SearchResult)objs.nextElement();
System.out.println(" UID...\t"+ match.getClass());
System.out.println(match.getClassName());
System.out.println("Found "+match.getName()+":");
System.out.println("Attributes are..\t"+match.getAttributes());
Attributes attrs = match.getAttributes();
NamingEnumeration e = attrs.getAll();
while (e.hasMoreElements())
{
Attribute attr = (Attribute) e.nextElement();
System.out.println("Attribute and its class..\t"+attr.getClass());
}
System.out.println("---------------------------------------");
}
}
答案 0 :(得分:-1)
SearchControls定义搜索返回的属性。您必须将其'returningAttributes'属性设置为'new String [0]'。将其保留为null以获取所有属性,或指定所需属性。