2014-11-21 66 views
0

我想要所有的用戶搜索到一個OU = 「USUARIOS」,但OU = 「USUARIOS」 有subOus,例如:獲取所有用戶到subOus在OU的Java LDAP

OU = USUARIOS 用戶:伊萬 OU:Gerentes 用戶:巴勃羅

我的問題:

我需要找到用戶伊萬和巴勃羅。但結果是隻與伊凡。

代碼:

SearchControls controls = new SearchControls(); 
controls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
String consulta = "(& (objectClass=user))"; 
NamingEnumeration<SearchResult> renum = context.search("OU=Usuarios," + toDC(dominio), 
        consulta, controls); 

我想遞歸地做到這一點,不要把(「OU = Gerentes,OU = USUARIOS裏馬克)

我如何能做到這一點

+0

請提供有關您的LDAP服務器和DIT結構的更多信息。 – jwilleke 2014-11-22 10:21:42

回答

0

呢?你的目錄樹hiearachy這個樣子

ou=Usarios 
|  - ivan 
| 
+ou=Gerentes 
     - pablo 

你應該能夠從頭構建搜索在ou=Usarios的範圍內,並獲得包括子範圍在內的所有內容,範圍爲SUBTREE_SCOPE

(&(objectclass=user)(|(uid=ivan)(uid=pablo)))這樣的過濾器應該可以找到ivan和pablo,前提是您的搜索範圍足夠高,範圍爲SUBTREE_SCOPE

如果你希望所有用戶搜索字符串應該只是(objectclass=user)

搜索基地需要從根部完全限定的一件事。這通常是類似於

ou=Usarios,dc=company,dc=com 
+0

剛剛意識到'toDC(dominio)'是域組件 - 抱歉。 – 2014-11-21 18:30:54