私のアクティブなディレクトリからすべてのユーザーを取得しようとしていますが、私のコードはただ1つの行を返しています。私は現在、1人のユーザーだけを出力している以下を試しました。Java:1行を返すLDAP検索
private void getUserBasicAttributes(String username, LdapContext ctx) {
try {
List<String> usersList = new ArrayList<String>();
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
//First input parameter is search bas, it can be "CN=Users,DC=YourDomain,DC=com"
//Second Attribute can be uid=username
NamingEnumeration<SearchResult> answer = ctx.search("DC=domain,DC=com", "(&(objectCategory=user))"
, constraints);
if (answer.hasMoreElements()) {
Person person = new Person();
SearchResult attrs = ((SearchResult) answer.next());
String names[] = attrs.getName().split(",");
String name[] = names[0].split("=");
usersList.add(name[1]);
}else{
throw new Exception("Invalid User");
}
System.out.println(usersList.size());
} catch (Exception ex) {
ex.printStackTrace();
}
}
いずれも必要ありません。 1つの属性のみを取得している場合は、その属性を直接取得できます。すべての1つの属性を反復処理する必要はありません。質問された実際の質問には答えません。 – EJP