搜索没有名称的DirContext

时间:2015-12-07 12:58:27

标签: java active-directory ldap

我使用服务帐户连接到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="";,但在这两种情况下,我分别得到NullPointerExceptionNameNotFoundException

有没有办法在不知道searchBase或域名的情况下搜索完整的活动目录。

注意 :我正在使用服务帐户的完整dn 进行连接。所以,不知道具体的域名。

1 个答案:

答案 0 :(得分:0)

搜索库始终是域根DC=extLDAP,DC=com - 您无法在AD中搜索更多对象。

但是,如果您事先不知道域根上下文,则可以执行以下三种操作之一:

当然,所有Microsoft示例都在C#中或更糟糕,但您应该能够转换为适当的Java。