2016-07-27 1 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), который указывает на запись схемы. Поэтому, читая схему, вы должны дать вам все объектные классы и их определения атрибутов.

Смежные вопросы