日期:2014-05-20  浏览次数:20961 次

Ldap怎么样获得上级节点dn
本帖最后由 java_news 于 2010-09-03 10:16:29 编辑 o=org
     -----cn=person
      
     ------ou=unit
                      --cn=person2
                      --ou=unit2



有这样一个树形结构的数据,person和Unit都是o下的也就是二级,person2和Unit2都是Unit下的也就是三级。

person和person2的ObjectClass都是inetOrgPerson

我现在用Java写了个方法,查询条件就是ObjectClass=inetOrgPeron

这样就把person和person2都查询出来了,但是我想知道person是属于哪个节点下的,person2又是属于哪个节点下的。
也就是要拿到他两的dn了。

请问怎么样拿到他们的dn呢?查询条件是ObjectClass=inetOrgPeron

麻烦帮忙解决下,谢谢!
------解决方案--------------------
纯java:

LDAPSearchResults searchResults = conn.search(strDn, LDAPConnection.SCOPE_ONE, searchFilter, null, false, cons);
LDAPEntry nextEntry = searchResults.next();
String strTempDn = nextEntry.getDN();

springLdap的获取方式:

public List<xxxx> getEgpDepByEgpId(String baseEgpID, String fiStr,
SearchControls controls) {
String baseEgp = baseEgpID + "," + BASE_DN;
List<xxxx> eList = ldapTemplate.search(baseEgp, fiStr, controls,
new ContextMapper() {
public Object mapFromContext(Object ctx) {
DirContextAdapter context = (DirContextAdapter)ctx;
String DN = context.getDn();
return null;
}
});
return eList;
}