我正在使用netscape ldapsdk-4.1.jar,我能够与ldap服务器连接并进行身份验证:

try{
            ldi.connect(hostname,LDAPv3.DEFAULT_PORT);
            LDAPConnectionInfo.ldapSearchResults = ldi.search(LDAPConnectionInfo.MY_SEARCHBASE,LDAPConnectionInfo.MY_SCOPE,LDAPConnectionInfo.MY_FILTER,null,false);
            System.out.println("Ldap Search Result : " +LDAPConnectionInfo.ldapSearchResults);

            ldi.authenticate(3, "host", "****");
}
.....

现在我想从中获取数据:
  • 在域组件(dn,here = example.com)下,有多少个组织单位(ou)。
  • 为每个组织单位(ou)获得所有通用名称(cn),并且它是通用名称(cn)下的叶子对象。

  • 我想我必须使用一些ldap查询来获取这些数据....任何输入将不胜感激。

    最佳答案

    为每个组织单位创建一个搜索请求,其中:

  • 基础对象是组织单位
  • 范围是subtree
  • 过滤器可以是objectClass=commonObjectClass(其中commonObjectCLass是要检索的条目通用的objectClass),也可以是cn=*
  • 每个条目要检索的属性列表

  • 依次将每个搜索请求发送到LDAP目录服务器并解释响应。

    不要使用netscape代码,因为它是古老的,有错误的且缓慢的。使用UnboundID LDAP SDK代替

    09-26 22:10