过滤LDAP返回的属性

时间:2015-01-23 08:48:49

标签: ldap openldap ldap-query

所以我们有这个LDAP查询(针对OpenLdap)

(&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com))

该查询返回 admin 所属的所有群组。它还返回这些组中的所有其他用户。当您有+10.000个用户属于同一组时,这是一个问题。

有没有办法只返回群组名称?像返回的属性过滤器一样?

在Java中有一个类似的选项,但我不知道它是否只进行查询并过滤结果客户端,或如何将其写为LDAP查询。示例:

String returnedAtts[]={"memberOf","name","mail"};
search.setReturningAttributes(returnedAtts);
NamingEnumeration answer = ctx.search(searchBase, "(&(objectClass=user)(sAMAccountName="+username+"))", search);

是的,我知道。使用 memberOf 将是一个更好的选择。但是这个LDAP没有那个属性

2 个答案:

答案 0 :(得分:2)

如果使用setReturningAttributes(list),LDAP服务器将仅返回这些内容。您不必包含搜索过滤器所基于的属性。这是解决问题的正确方法。

答案 1 :(得分:1)

过滤器之类的  (&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com)) 不应该返回组中的所有成员。它将返回用户所属的所有组。

过滤器之类的     (及(objectClass的=是groupofNames)9cn = yourdesiredgroupname)(构件= CN =管理员,DC =测试,DC = COM))

仅返回感兴趣的组。将返回的属性设置为CN将仅返回组名。

-Jim