如何通过ldap中的特定对象类获取所有属性定义?

时间:2016-07-27 04:27:01

标签: java ldap openldap ldap-query

我的目标是检索给定对象类在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 个答案:

答案 0 :(得分:0)

大多数LDAP服务器通过LDAP公开其架构,并且根据LDAP规范,每个条目都应具有指向架构条目的操作属性(subSchemaSubEntry)。因此,阅读模式应该为您提供所有的objectClasses及其属性定义。