我已经在 Java 中建立了一个 LdapContext,并希望对它执行搜索。我正在连接到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和已经使用它来尝试通过将 my 转换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
. 我能够搜索特定位置,但我不知道如何从根目录正确“涓涓细流”我的搜索,以便它可以验证任何子域中的用户。谢谢