我正在使用 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 查询来获取这些数据....任何输入都将受到高度赞赏。
最佳答案
为每个组织单位创建一个搜索请求,其中:
- 基础对象是组织单位
- 范围是
子树
- 过滤器是
objectClass=commonObjectClass
,其中commonObjectCLass
是要检索的条目共有的 objectClass,或者cn=*
- 要为每个条目检索的属性列表
依次将每个搜索请求传输到 LDAP 目录服务器并解释响应。
不要使用 netscape 代码,它太古老、有错误而且速度慢。使用 UnboundID LDAP SDK相反
关于java - 用于获取 dn 和所有 cn 数据的 LDAP 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214115/