如何从LDAP查询多个用户

Thr*_*ddy 6 java unix ldap

如何从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=name1OR uid=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*)


希望这可以帮助!