gpt4 book ai didi

java - java中的LDAP搜索: DN contains ,

转载 作者:行者123 更新时间:2023-11-30 05:02:43 24 4
gpt4 key购买 nike

我目前在搜索 DN 包含逗号的条目时遇到问题:

StringTokenizer st = new StringTokenizer(dn, "=");
Attributes searchAttributes = new BasicAttributes(st.nextToken(), st.nextToken());
Enumeration results = ctx.search(baseDn, searchAttributes);

if (results.hasMoreElements()) {
// ...
}

我测试了 dn=first,second 以及 dn=first\,second尽管搜索运行正确,但我从未得到任何结果回来。相同的 baseDn 和 dn 在 Eclipse/Apache Directory Studio LDAP 浏览器中可以正常工作。

最佳答案

依赖于库,例如使用 Novell ldap.jar 构建

searchResults = lc.search(searchBase, searchScope, searchFilter, null, false);
//private String searchFilter = "(objectClass=*)";

再次取决于库,因为 Directory Studio LDAP 浏览器可能有自己的驱动程序,并且某些方法可能无法实现,例如使用 ldap.jar 能够在 ActiveDirectory 中搜索

基本上所有库(包括用于 Windows ActiveDirectory 的 Java 驱动程序)都包含大量与库一起打包的示例,用于在驱动程序中实现的最重要的方法

编辑:

嗯,但是有两个相关

1/对管理员提供的上下文的访问权限(在环境之间)2/使用 ActiveDirectory(始终)和(旧 PC)LDAP 测试环境,我必须强制线程进行一些小暂停

private void readData() {
searchResults = new LDAPSearchResults();
try {
Thread.sleep(450);
} catch (InterruptedException ex) {
Logger.getLogger(Profylaxia.class.getName()).log(Level.SEVERE, null, ex);
}
try {
searchResults = lc.search(searchBase, searchScope, searchFilter, null, false);
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(Profylaxia.class.getName()).log(Level.SEVERE, null, ex);
}
int noResult = searchResults.getCount();
System.out.println(" noResult : " + noResult);

//然后我就可以开始迭代了......

关于java - java中的LDAP搜索: DN contains ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com