如何从LDAP查询多个用户.
我正在使用DirContext.search(base,filter,scope); 在我的java程序中
截至目前,它的工作正常,有一个值过滤器.过滤器=( "UID =名")
但我的要求是一次将多个名称传递给过滤器
filter=("uid=name1,name2,name3....") .
Run Code Online (Sandbox Code Playgroud)
ana*_*ron 11
LDAP对其过滤器使用"PREFIX"表示法.
例如:
或条件
(|(attr1=val1)(attr2=val2)(attr1=val2))
Run Code Online (Sandbox Code Playgroud)
和条件
(&(attr1=val1)(attr2=val2)(attr1=val2))
Run Code Online (Sandbox Code Playgroud)
在您的情况下,过滤条件将是这样的:
filter = "(|(uid=name1)(uid=name2)(uid=name3))"
Run Code Online (Sandbox Code Playgroud)
上述过滤器意味着:
找到任何有
uid=name1ORuid=name2OR的用户uid=name3.
这应列出用户ID为name1,name2或name3的用户.
更多例子:
平等:
(attribute=abc)例如(&(objectclass = user)(displayName = JohnDoe))否定:
(!(attribute=abc)),例如(!objectClass = group)存在:
(attribute=*),例如(mailNickName =*)缺席:
(!(attribute=*)),例如(!proxyAddresses =*)大于:
(attribute>=abc),例如(storageQuota> = 100000)小于:
(attribute<=abc),例如(storageQuota <= 100000)邻近:
(attribute~=abc),例如(displayName~ = JohnDoe)*(〜=可能与所有目录服务器不兼容!!)
通配符:例如(sn = J*)或(mail=*@example.com)或(givenName =*John*)
希望这可以帮助!