[英]ldap search filter with java
ldap搜索过滤器出现问题。 我想搜索根节点的所有子节点。 我希望用户的电子邮件用户名包含查询字符串。 例如,如果我有
并且搜索查询是“ lc”,我只需要foo_l.c_bar@foobar.com
令人惊讶的是,以下代码返回第一个和第二个。
String query = "...";
DirContext dc = ...;
NamingEnumeration<SearchResult> ne = dc.search(root,
"(email=*{0}*@*)",
new Object[] { query }, null);
"*...*@*"
查询过滤器出了什么问题?
我无法给您完整的答案,但是,如果您使用过滤器"(email=*lc*@*)"
从命令行尝试ldapsearch
,则应该得到正确的记录...所以我认为问题出在Java方法而不在过滤器中。
希望它能对您有所帮助。
我假设您忘记粘贴格式化查询及其代码的{0}参数的代码了吗?
编辑:哇,算了,我什至不知道采用filterArgs数组的方法。
附带说明一下,inetOrgPerson中电子邮件地址的标准属性是“ mail”而不是“ email”(但是您的情况可能会有所不同)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.