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

时间:2017-02-28 04:22:44

标签: java ldap

我想从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());
  }

1 个答案:

答案 0 :(得分:1)

String[] attrIDs = { "(&(objectClass=*)(objectCategory=*))"};
constraints.setReturningAttributes(attrIDs);

这是胡说八道。这不是一个属性ID数组,它是一个包含一个过滤字符串的数组,过滤字符串已在其他地方指定。

例如,如果您想要返回surname, givenName, mail,请写下:

String[] attrIDs = { "surname", "givenName", "mail"};

如果您想要所有常规属性,请使用"*"。如果您还需要操作属性,请使用:

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