我想从LDAP AD目录中检索所有用户,并将其存储在文件中以进行某些处理。
我正在使用下面的代码来获取所有AD用户,但是它返回No Attributes。
try {
DirContext ctx = new InitialDirContext(env);
connected = "true";
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
String[] attrIDs = { "(&(objectClass=*)(objectCategory=*))"};
constraints.setReturningAttributes(attrIDs);
NamingEnumeration<SearchResult> answer = ctx.search(ldapDCinfo, "(&(objectClass=*)(objectCategory=*))", constraints);
while (answer.hasMore()) {
Attributes attrs = ((SearchResult) answer.next()).getAttributes();
sendAry[0]= connected;
System.out.println(attrs.toString());
}
最佳答案
String[] attrIDs = { "(&(objectClass=*)(objectCategory=*))"};
constraints.setReturningAttributes(attrIDs);
这是无稽之谈。那不是属性ID的数组,而是一个包含一个过滤字符串的数组,并且该过滤字符串已在其他位置指定。
例如,如果要返回
surname, givenName, mail
,则应输入:String[] attrIDs = { "surname", "givenName", "mail"};
如果需要所有普通属性,请使用
"*"
。如果还需要操作属性,请使用:String[] attrIDs = { "*", "+"};