[英]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.