Я установил LdapContext в Java и собираюсь выполнить поиск по нему. Я подключаюсь к IP (ldap://1.1.1.20:389
) с корневым доменом dc=fake,dc=domain,dc=com
. Я хочу проверить пользователей на этом сервере, но пользователи распределены по нескольким доменам в лесу. Я пытаюсь запросить корневой уровень для поиска пользователя во всех поддоменах.
Я нашел этот учебник https://docs.oracle.com/javase/10/jmx/examples-lookup-ldap-client-java.htm#JSJMX-GUID-5BA2ADC5-5597-4F1D-BF53-F1A2C7DB6117, и использовали его, чтобы попытаться выполнить поиск на корневом уровне, преобразовав мой LdapContext
как DirContext
, как они это делают в учебнике.
ctx = new InitialLdapContext(env, null);
DirContext root = (DirContext) (ctx.lookup(""));
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
searchControls.setTimeLimit(30000);
ctx.setRequestControls(null);
NamingEnumeration<?> namingEnum = root.search("", "(CN=Bob Test)", searchControls);
while (namingEnum.hasMore())
{
SearchResult result = (SearchResult) namingEnum.next();
Attributes attrs = result.getAttributes();
IDActive = true;
}
Это приводит к PartialResultException
. Я могу искать в определенных местах, но я не знаю, как правильно «просачивать» мой поиск из корня, чтобы он мог проверить пользователя в любом поддомене. Спасибо