2016-07-27 2 views
0

Mein Ziel ist es, alle Attribute zu erhalten, die auf dem LDAP-Server von einer bestimmten Objektklasse definiert sind. Was ich bisher gemacht habe, ist:Wie erhalten Sie alle Attribute Definition von einer bestimmten Objektklasse in 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()); 
      } 
     } 
    } 
} 

Dieser Code wird alle Benutzer vom LDAP-Server abfragen und Attributdefinition erhalten. Dies funktioniert gut, wird aber bei einer großen Anzahl von Benutzern problematisch.

Gibt es eine andere Möglichkeit, die angegebene Objektklasse direkt zu finden und die gesamte Attributdefinition zu erhalten?

+1

Scheint ein X-Y Problem zu sein. Was ist das eigentliche Problem, das Sie versuchen zu lösen? – Roshith

Antwort

0

Die meisten LDAP-Server stellen ihr Schema über LDAP zur Verfügung, und gemäß den LDAP-Spezifikationen sollte jeder Eintrag über ein operational-Attribut (subSchemaSubEntry) verfügen, das auf den Schemaeintrag verweist. Wenn Sie also das Schema lesen, sollten Sie alle Objektklassen und ihre Attributdefinitionen angeben.

Verwandte Themen