Я хотел бы перечислить или выполнить поиск корневого контекста (ов) в дереве LDAP. Я использую Apache Directory Server и Java:
Hashtable<String, String> contextParams = new Hashtable<String, String>();
contextParams.put("java.naming.provider.url", "ldap://localhost:10389");
contextParams.put("java.naming.security.principal", "uid=admin,ou=system");
contextParams.put("java.naming.security.credentials", "secret");
contextParams.put("java.naming.security.authentication", "simple");
contextParams.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
DirContext dirContext = new InitialDirContext(contextParams);
NamingEnumeration<NameClassPair> resultList;
//Works
resultList = dirContext.list("ou=system");
while (resultList.hasMore()) {
NameClassPair result = resultList.next();
System.out.println(result.getName());
}
//Does not work
resultList = dirContext.list("");
while (resultList.hasMore()) {
NameClassPair result = resultList.next();
System.out.println(result.getName());
}
Я могу перечислить подузлы ou = system. Но я не могу перечислить подузлы фактического корневого узла. Я хотел бы иметь этот список точно так же, как Apache Directory Studio может:
альтернативный текст http://lesc.se/stackoverflow/ldap_root_contexts.png