过滤 LDAP 返回的属性
Filtering LDAP returned attributes
所以我们有这个 LDAP 查询(针对 OpenLdap)
(&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com))
查询 returns admin 所属的所有组。它还 returns 这些组中的所有其他用户。当您在同一组中有 +10.000 个用户时,这是一个问题。
有没有办法只 return 组名?像 returned 属性过滤器?
在 Java 中有一个类似的选项,但我不知道它是否只是在客户端进行查询和过滤结果,或者如何将其编写为 LDAP 查询。示例:
String returnedAtts[]={"memberOf","name","mail"};
search.setReturningAttributes(returnedAtts);
NamingEnumeration answer = ctx.search(searchBase, "(&(objectClass=user)(sAMAccountName="+username+"))", search);
是的,我知道。使用 memberOf 会是更好的选择。但是这个 LDAP 没有那个属性
如果您使用 setReturningAttributes(list)
,LDAP 服务器将 return 只有那些。您不必包括搜索过滤器所基于的属性。这是您问题的正确解决方案。
像这样的过滤器
(&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com))
不应 return 组的所有成员。它将 return 用户所属的所有组。
像这样的过滤器
(&(objectClass=groupOfNames)9cn=yourdesiredgroupname)(member=cn=admin,dc=test,dc=com))
请问return只对感兴趣的群体。将 returned 属性设置为 CN 将 return 只有组名。
-吉姆
所以我们有这个 LDAP 查询(针对 OpenLdap)
(&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com))
查询 returns admin 所属的所有组。它还 returns 这些组中的所有其他用户。当您在同一组中有 +10.000 个用户时,这是一个问题。
有没有办法只 return 组名?像 returned 属性过滤器?
在 Java 中有一个类似的选项,但我不知道它是否只是在客户端进行查询和过滤结果,或者如何将其编写为 LDAP 查询。示例:
String returnedAtts[]={"memberOf","name","mail"};
search.setReturningAttributes(returnedAtts);
NamingEnumeration answer = ctx.search(searchBase, "(&(objectClass=user)(sAMAccountName="+username+"))", search);
是的,我知道。使用 memberOf 会是更好的选择。但是这个 LDAP 没有那个属性
如果您使用 setReturningAttributes(list)
,LDAP 服务器将 return 只有那些。您不必包括搜索过滤器所基于的属性。这是您问题的正确解决方案。
像这样的过滤器
(&(objectClass=groupOfNames)(member=cn=admin,dc=test,dc=com))
不应 return 组的所有成员。它将 return 用户所属的所有组。
像这样的过滤器 (&(objectClass=groupOfNames)9cn=yourdesiredgroupname)(member=cn=admin,dc=test,dc=com))
请问return只对感兴趣的群体。将 returned 属性设置为 CN 将 return 只有组名。
-吉姆