将所有用户放入OU java ldap中的subOus

时间:2014-11-21 14:05:20

标签: java ldap

我正在尝试将所有用户搜索到OU =“Usuarios”,但OU =“Usuarios”有一个subOus,例如:

OU = USUARIOS     用户:伊万     OU:Gerentes        用户名:Pablo

我的问题:

我需要找到用户ivan和pablo。但结果只与伊万有关。

代码:

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 Rimac)。

我该怎么做?

1 个答案:

答案 0 :(得分: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