簡體   English   中英

ldap使用Java搜索過濾器

[英]ldap search filter with java

ldap搜索過濾器出現問題。 我想搜索根節點的所有子節點。 我希望用戶的電子郵件用戶名包含查詢字符串。 例如,如果我有

  • foo_l.c_bar@foobar.com
  • foob​​ar@foo_l.c_bar

並且搜索查詢是“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM