0
鑑於下面LDAP結構(或多或少)LDAP搜索 - 查找與特定用戶的所有組在它
C=NO
-o=mydomain
--cn=groups
---cn=group1
----uid=bob,cn=users,o=mydomain,C=NO
---cn=group2
----uid=bob,cn=users,o=mydomain,C=NO
----uid=odd,cn=users,o=mydomain,C=NO
--cn=users
---uid=bob,cn=Robert,sn=Johnsen
---uid=odd,cn=Odd,sn=Olsen
我使用以下URL = LDAP://服務器:端口/ O = MYDOMAIN,C = NO
然後,我可以基本上檢索整個樹有些這樣的搜索:
NamingEnumeration results = ctx.search("cn=groups", "cn=*", constraints);
其中約束是
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
但是,我只想接收包含特定用戶的組。我已經嘗試過很多很多變體,如
NamingEnumeration results = ctx.search("cn=groups"
, "(&(uid={0},cn=users,o=fund,C=NO)(cn=*))"
, new Object[] {"odd"}
, constraints);
但我只得到空結果。看起來似乎是全部或全部......我懷疑問題在於,cn = *和uid = odd在樹中的不同層上,例如。 uid =是一個屬性,但cn = *是上面一個節點的節點?
我會如何以更有效的方式完成此搜索,而不僅僅是檢索所有內容並將其解析爲客戶端?
謝謝,它的工作原理,我從網上挖出了類似的東西。 objectClass = accessGroup,結構是遺留的。 – 2011-05-11 19:14:12