我想从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());
}
答案 0 :(得分:1)
String[] attrIDs = { "(&(objectClass=*)(objectCategory=*))"};
constraints.setReturningAttributes(attrIDs);
这是胡说八道。这不是一个属性ID数组,它是一个包含一个过滤字符串的数组,过滤字符串已在其他地方指定。
例如,如果您想要返回surname, givenName, mail
,请写下:
String[] attrIDs = { "surname", "givenName", "mail"};
如果您想要所有常规属性,请使用"*"
。如果您还需要操作属性,请使用:
String[] attrIDs = { "*", "+"};