2017-02-28 14 views
0

LDAP ADディレクトリからすべてのユーザーを取得して、処理するためにファイルに保存したいとします。 以下のコードを使用してすべてのADユーザーを取得していますが、属性なしが返されています。すべてのLDAPディレクトリのユーザーを取得してJavaを使用してファイルに保存する方法

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
String[] attrIDs = { "(&(objectClass=*)(objectCategory=*))"}; 
constraints.setReturningAttributes(attrIDs); 

これはナンセンスです。これは属性IDの配列ではなく、1つのフィルター文字列を含む配列であり、フィルター文字列はすでに別の場所で指定されています。

たとえば、あなたはsurname, givenName, mailを返したい場合は、次のように記述します。

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

あなたはすべての通常の属性、使用"*"をしたい場合。運用属性も同様に使用するには、次のように指定します。

String[] attrIDs = { "*", "+"}; 
関連する問題