我使用服务帐户连接到Active Directory,然后使用上下文搜索用户:
String searchBase = "DC=extLDAP,DC=com";
String query = "(&(objectCategory=person)(objectClass=user)(SAMAccountName=batty))";
final SearchControls constraints = new SearchControls();
final NamingEnumeration<?> searchResults = dirContext.search(searchBase,searchQuery,constraints);
但我有一个不向我提供searchBase的情况。在这种情况下,我需要搜索完整的活动目录。
我尝试使用searchBase=null;
和searchBase="";
,但在这两种情况下,我分别得到NullPointerException
和NameNotFoundException
。
有没有办法在不知道searchBase
或域名的情况下搜索完整的活动目录。
注意 :我正在使用服务帐户的完整dn 进行连接。所以,不知道具体的域名。
答案 0 :(得分:0)
搜索库始终是域根DC=extLDAP,DC=com
- 您无法在AD中搜索更多对象。
但是,如果您事先不知道域根上下文,则可以执行以下三种操作之一:
当然,所有Microsoft示例都在C#中或更糟糕,但您应该能够转换为适当的Java。