簡體   English   中英

具有多個參數的DirContext搜索數組

[英]DirContext search array with multiple parameters

我正在嘗試在LDAP服務器中搜索具有某些配置文件的所有用戶。 到目前為止,我可以為所有用戶提供個人資料,但是我無法對多個角色執行相同的操作。 所以以下代碼有效

[...]
filterExpr = "(&(objectclass=person)(memberOf={0}))";
String rol = "myRol";
Object parameters[] ={rol};
context.search(distinguishedName, filterExpr, parameters, controls);

但以下代碼不

filterExpr = "(&(objectclass=person)(memberOf={0}))";
String rol = "myRol";
String roles[] = {rol};
Object parameters[] ={roles};
context.search(distinguishedName, filterExpr, parameters, controls);

如果陣列中的角色不止一個,則它也不起作用。 我究竟做錯了什么?

對象數組只能包含字符串列表或字節數組。 其余的將轉換為字符串。 在第二個示例中,第一個對象是字符串數組。 最有可能將數組引用轉換為字符串,並從中進行過濾。

看一下它的api,

“既不是String也不是byte []的對象將通過Object.toString()轉換為其字符串形式,然后適用String的規則。”

您的ldap查詢應該像

filterExpr = "(&(objectclass=person)(|(memberOf={0})(memberOf={1})(memberOf={2})))";
String rol1 = "myRol1";
String rol2 = "myRol2";
String rol3 = "myRol3";
Object parameters[] ={rol1, rol2, rol3);
context.search(distinguishedName, filterExpr, parameters, controls);

暫無
暫無

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

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