由于项目需要,组织架构和人员架构从AD同步,所以使用LdapContext进行访问AD,遍历人员,后来发现有部分人员遍历时,没有搜索出来,以下是主要的程序代码:
String baseCN = “DC=xxx,DC=cn”;
// Create the search controls
SearchControls searchCtls = new SearchControls();
//搜索子目录
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
// specify the LDAP search filter
String searchFilter = “(&(objectClass=user))”;
// Specify the Base for the search 搜索域节点
searchCtls.setReturningAttributes(returnedAtts); // 设置返回属性集
// searchCtls.setReturningAttributes(null); // 不定制属性,将返回所有的属性集
// Search for objects using the filter
NamingEnumeration answer = ctx.search(baseCN, searchFilter,searchCtls);
if (answer == null || answer.equals(null)) {
System.out.println(“answer is null”);
} else {
System.out.println(“answer not null”);
}
System.out.println(answ