如何使用Spring查找LDAP中属于同一CN的所有组?

问题描述 投票:0回答:1

我有这样的要求,我需要在 LDAP 中查找具有相同公用名 (CN) 的所有组。例如,我可以使用下面的代码找到一个定义。

("CN=developer.eastRegion,OU=developerGroups,DC=mycomp,DC=com")

DirContextOperations lookupContext =
          ldapTemplate.lookupContext("cn=ent.coGLRegion,ou=Groups,dc=kp,dc=org");

实际任务是疯狂搜索常见名称并列出所有组, (“CN=开发人员。*,OU=开发人员组,DC=mycomp,DC=com”)

任何见解都会非常有帮助。预先感谢。

java spring ldap spring-ldap
1个回答
0
投票

指定

ou=Groups,dc=kp,dc=org
作为您的搜索库;使用 LDAP filter 来匹配剩余的属性,例如基本的
(cn=developer.*)
或更精确的
(&(objectClass=group)(cn=developer.*))

(条目 DN 的最左边的 RDN 属于条目本身,因此始终可以使用过滤器来匹配它。通常无法搜索所有其他 RDN,至少在 Active Directory 中不能,尽管在 OpenLDAP 中可以。)

纯粹基于查看文档和其他答案,可能是这样的:

var controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);

var results = ldapTemplate.search("ou=Groups,dc=kp,dc=org",
                                  "(cn=developer.*)",
                                  controls);

确保您使用

SUBTREE
作为搜索范围。通常是默认的,但似乎可能需要通过
SearchControls.SUBTREE_SCOPE
来指定。

© www.soinside.com 2019 - 2024. All rights reserved.