我有我之前RFC 4515,它提供的字符串表示形式LDAP搜索過濾器。我還查看了UnboundId SDK for Java的API,但我不清楚什麼是最好的習慣用法,當我期望我的查詢獲取一個,最多 LDAP條目時。我曾考慮過使用該條目的DN作爲的基地在LDAP查詢,但然後,過濾真的沒有意義,我必須使用一個人爲的無意義過濾器,將設計,評估爲真該條目已經在搜索基地中指出。即似乎沒有alwaysTrue過濾器在協議中使用。LDAP搜索查詢以獲取一個特定的條目
2
A
回答
3
如果專有名稱是已知的,可使用專有名稱作爲基礎對象,使用SearchScope.BASE
,使用(&)
(或objectClass=*
)的過濾器,並提供客戶端要求的屬性的列表。例如:
// exception handling not shown
final LDAPConnection conn = new LDAPConnection(host,port);
// some broken servers do not understand the legal filter '(&)', if
// your directory is broken in this way, use 'objectClass=*' and
// an equality filter can be created like:
// Filter filter = Filter.createEqualityFilter("objectClass","*");
final SearchRequest req = new SearchRequest(dn,SearchScope.Sub,"(&)",SearchRequest.ALL_USER_ATTRIBUTES);
final SearchResult result = conn.search(req);
final List<SearchResultEntry> entries = result.getSearchEntries();
conn.close();
這將返回條目的所有用戶屬性。同樣的事情可以通過:
// exception handling not shown
final LDAPConnection conn = new LDAPConnection(host,port);
final SearchResultEntry entry = conn.getEntry(dn);
conn.close();
如果辨別名是已知的,第二種方法是最簡潔。如果客戶希望指定要返回的屬性列表,還有一個getEntry(String dn,String attributes ...)
方法。如果DN未知,則客戶端必須搜索該條目,並使用每個返回至少一個條目的搜索請求在SearchResultEntry
中返回專有名稱。
對於當多個條目匹配過濾器時最多獲取一個條目,LDAP客戶端必須提供足夠嚴格的搜索範圍和過濾器,以將結果縮小爲所需的一個條目。這就是過濾器和範圍的用途。
相關問題
- 1. 用於搜索多個特定OU的LDAP根查詢語法
- 2. PHP LDAP查詢以獲取特定安全組的成員
- 3. Python搜索特定條目
- 4. 如何合併兩個LDAP查詢/搜索 - LDAP子查詢
- 5. Active Directory自定義搜索LDAP查詢
- 6. 彈性搜索 - 搜索查詢以匹配特定鍵的任何一個值
- 7. 查詢獲取來自自定義搜索的特定數據
- 8. 計數LDAP搜索中的條目數
- 9. 如何執行SQL查詢以獲取最後一個條目
- 10. PySNMP獲取特定條目
- 11. 錯誤特定的搜索查詢
- 12. LDAP查詢搜索深度問題
- 13. LDAP搜索查詢不起作用?
- 14. LDAP:從搜索查詢中排除域
- 15. LDAP,DirectoryServices c#搜索查詢基地
- 16. 如何寫一個搜索查詢在以下條件下
- 17. 在LDAP中搜索條件?
- 18. LDAP目錄下的選項搜索以搜索ROLE
- 19. 如何讀取文件中的條目並搜索特定條目
- 20. 搜索多個tables.column以獲取特定值
- 21. LDAP搜索 - 查找與特定用戶的所有組在它
- 22. error =「Ldap搜索匹配不止一個條目,請檢查您的過濾器設置」與Grafana LDAP
- 23. XPath查詢搜索與特定文本
- 24. 地圖搜索特定查詢
- 25. 獲取最新的ldap條目
- 26. LINQ查詢搜索條件
- 27. 保存LDAP查詢鎖定特定OU
- 28. 查詢在mongoid搜索多個條件
- 29. Powershell多個搜索/條件查詢
- 30. 如何搜索SQL查詢中的多個條目?