中易网

Java获取Ldap叶子节点

答案:1  悬赏:50  
解决时间 2021-01-16 08:26
  • 提问者网友:孤凫
  • 2021-01-15 16:08
Java获取Ldap叶子节点
最佳答案
  • 二级知识专家网友:猎心人
  • 2021-01-15 17:41
使用netscape的ldap工具包。使用其它的工具包,写法类似。

注:必须知道base dn,以下假定ou=admin为base dn。若有明确的base dn,那写法比如:ou=admin,o=test1

源代码如下:
==========================
import netscape.ldap.*;

public class SearchTest {
public static void main(String[] args) {
LDAPConnection lc = null;
LDAPEntry findEntry = null;
int status = -1;
try {
//lc = ConnectionPool.

lc = new LDAPConnection();

String MY_HOST = "localhost";
int MY_PORT = 389;
lc.connect(MY_HOST, MY_PORT);

System.out.println("1=========" +lc.isConnected());

lc.authenticate("cn=Directory Manager","password");

System.out.println("2=========" +lc.isConnected());


String MY_FILTER = "(objectclass=*)";
String MY_SEARCHBASE = "ou=admin";

LDAPSearchConstraints cons = lc.getSearchConstraints();
cons.setBatchSize(0);
cons.setMaxResults(5);

MY_FILTER = "(objectclass=*)" ;

LDAPSearchResults res = lc.search(MY_SEARCHBASE,
LDAPConnection.SCOPE_ONE,
MY_FILTER,
null,
false,
cons);

while (res.hasMoreElements()) {
LDAPEntry cLDAPEntry = res.next() ;
System.out.println("" + cLDAPEntry.getDN());
System.out.println("" + cLDAPEntry.toString());

}
status = 0;
} catch (LDAPException e) {
System.out.println("Error: " + e.toString());
e.printStackTrace();
}


if ((lc != null) && lc.isConnected()) {
try {
lc.disconnect();

System.out.println("3=========" +lc.isConnected());

} catch (LDAPException e) {
System.out.println("Error: " + e.toString());
}
}

System.out.println("4=========" +lc.isConnected());

System.exit(status);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息