繁体   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