2010-02-15 147 views
2

我在使用ldap搜索過濾器時遇到問題。 我想搜索根節點的所有子節點。我想要電子郵件用戶名包含查詢字符串的用戶。 例如,如果我有使用java的ldap搜索篩選器

與搜索查詢是 「LC」 我只想[email protected] .com

下面的代碼令人驚訝地返回第一個和第二個。

String query = "..."; 
DirContext dc = ...; 
NamingEnumeration<SearchResult> ne = dc.search(root, 
    "(email=*{0}*@*)", 
    new Object[] { query }, null); 

查詢過濾器"*...*@*"有什麼問題?

回答

1

我不能給你一個完整的答案,但是如果你從命令行嘗試ldapsearch與過濾器"(email=*l.c*@*)",你應該得到正確的記錄...所以我會說這個問題是在Java方法,而不是在過濾。

希望它能幫助你。

+0

不幸的是ATM我沒有Linux機器w/ldapsearch安裝。 我唯一擁有的ldap管理器是JXplorer,它返回所有記錄,而不僅僅是正確的。 AFAIK它是用java編寫的,所以我不知道它是我還是java。 –

0

我假設你忘了粘貼格式化你的查詢和它的{0}參數的代碼? 編輯:哇,忘了我,我甚至不知道採用filterArgs數組的方法。

作爲一個方面說明,在爲inetOrgPerson電子郵件地址標準的屬性是「郵件」而不是「電子郵件」(但也可能是不同的你的課程的情況下)