簡體   English   中英

通過“ ObjectGUID”進行Spring LDAP搜索

[英]Spring LDAP search by “ObjectGUID”

我正在嘗試使用“ objectGUID”查詢我的ldapTemplate-

String myGuid = "\\00\\B2\\15\\6C\\7D\\1B\\4B\\C8\\BF\\87\\C5\\36\\86\\A8\\B0\\16";
List<Object> attributes =  ldapTemplate.search("", new EqualsFilter("objectGUID", myGuid).encode(), new MyGUIDMapper());

我的基本環境設置確實映射為-

<beans:entry key="java.naming.ldap.attributes.binary" value="objectGUID objectSid"/>

這樣就可以將objectGUID提取為byte[] 但是在查詢ldapTemplate時,我沒有得到任何結果。

這是objectGUID查詢的正確實現嗎?

的問題是, EqualsFilter (或任何其它亞類CompareFilter )僅預計純文本字段和對它們進行編碼,以避免LDAP代碼注入。

為了避免這種編碼,您可以改用HardcodedFilter 如果需要,您可以在搜索之前先驗證該值,以避免任何注入,如果您自己實際上並未對純文本GUID進行編碼。

如果要使用objectSID字段,這也可以使用。

ldapTemplate.search("", new HardcodedFilter("(objectGUID=" + myGuid + ")").encode(), new MyGUIDMapper());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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