2016-07-27 6 views
0

私の目的は、LDAPサーバー上で定義されたすべての属性を特定のオブジェクトクラスで取得することです。私がこれまでに行っていることである。ldapの特定のオブジェクトクラスによってすべての属性定義を取得する方法は?

List<SearchResult> searchLdapUsers = searchLdapUsers(ldapConfig, null, null, null, null, null, 0); 
if (searchLdapUsers != null && searchLdapUsers.size() > 0) { 
    for (SearchResult searchResult : searchLdapUsers) { 
     Attributes attrs = searchResult.getAttributes(); 
     if (attrs != null) { 
      NamingEnumeration<? extends Attribute> all = attrs.getAll(); 
      while (all.hasMoreElements()) { 
       Attribute attribute = (Attribute) all.nextElement(); 
       hs.put(attribute.getID(), attribute.getID()); 
      } 
     } 
    } 
} 

このコードは、LDAPサーバーからすべてのユーザーを照会し、属性の定義を取得します。これは正常に動作していますが、多数のユーザーに問題が発生します。

与えられたオブジェクトクラスを直接見つけ出し、内部にすべての属性定義を取得する他の方法はありますか?

+1

X-Y問題と思われます。あなたが解決しようとしている実際の問題は何ですか? – Roshith

答えて

0

ほとんどのLDAPサーバーはLDAPを使用してスキーマを公開し、LDAP仕様に従って、すべてのエントリにはスキーマエントリを指す操作属性(subSchemaSubEntry)が必要です。スキーマを読んで、すべてのobjectClassesとその属性定義を与えるべきです。

関連する問題