如何从LDAP查询多个用户。
我正在使用 DirContext.search(碱,过滤器,适用范围);在我的java程序
截至目前,它的工作正常,有一个值过滤器。过滤器=( “UID =名”)
但我的要求是在
之类的时候将多个名称传递给过滤器filter=("uid=name1,name2,name3....") .
答案 0 :(得分:8)
LDAP使用" PREFIX"其过滤器的表示法。
例如:
OR 条件
(|(attr1=val1)(attr2=val2)(attr1=val2))
AND 条件
(&(attr1=val1)(attr2=val2)(attr1=val2))
在您的情况下,过滤条件将为:
filter = "(|(uid=name1)(uid=name2)(uid=name3))"
上述过滤器意味着:
查找拥有
uid=name1
或uid=name2
或uid=name3
的任何用户。
这应列出用户ID为name1,name2或name3的用户。
更多例外:
平等:
(attribute=abc)
,例如(及(对象类=用户)(的displayName = JOHNDOE))否定:
(!(attribute=abc))
,例如(!= objectClass的组)在场状态:
(attribute=*)
,例如(的mailNickname = *)缺席:
(!(attribute=*))
,例如(!代理地址= *)大于:
(attribute>=abc)
,例如(storageQuota> = 100000)小于:
(attribute<=abc)
,例如(storageQuota&LT = 100000)邻近:
(attribute~=abc)
,例如(显示名〜= JOHNDOE)*(〜=可能与所有目录服务器不兼容!!)
通配符:例如(sn = J *)或(mail=*@example.com)或(givenName = * John *)
希望这有帮助!