如何使用Java获取所有LDAP目录用户并将其存储到文件中

如何使用Java获取所有LDAP目录用户并将其存储到文件中,java,ldap,Java,Ldap,我想从LDAP AD目录中检索所有用户,并将其存储在一个文件中以便进行一些处理。 我使用下面的代码来获取所有广告用户,但它不返回任何属性 try { DirContext ctx = new InitialDirContext(env); connected = "true"; SearchControls constraints = new SearchControls(); constraints.setSearchScope(SearchControls.SUBTREE_

我想从LDAP AD目录中检索所有用户,并将其存储在一个文件中以便进行一些处理。 我使用下面的代码来获取所有广告用户,但它不返回任何属性

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());
  }
试试看{
DirContext ctx=新的初始DirContext(env);
connected=“true”;
SearchControls约束=新的SearchControls();
约束.setSearchScope(SearchControls.SUBTREE_范围);
字符串[]attrIDs={”(&(objectClass=*)(objectCategory=*))”;
约束。设置ReturningAttribute(属性ID);
namingumerationanswer=ctx.search(ldapDCinfo,(&(objectClass=*)(objectCategory=*))约束);
while(answer.hasMore()){
Attributes attrs=((SearchResult)answer.next()).getAttributes();
sendAry[0]=已连接;
System.out.println(attrs.toString());
}
这是胡说八道。这不是一个属性ID数组,它是一个包含一个筛选器字符串的数组,而筛选器字符串已经在别处指定

例如,如果您想返回
姓氏、givenName、mail
,您可以这样写:

String[] attrIDs = { "surname", "givenName", "mail"};
如果需要所有正常属性,请使用
“*”
。如果还需要操作属性,请使用:

String[] attrIDs = { "*", "+"};
String[] attrIDs = { "*", "+"};