如何从LDAP查询多个用户

时间:2017-02-23 12:24:10

标签: java unix ldap

如何从LDAP查询多个用户。

我正在使用 DirContext.search(碱,过滤器,适用范围);在我的java程序

截至目前,它的工作正常,有一个值过滤器。过滤器=( “UID =名”)

但我的要求是在

之类的时候将多个名称传递给过滤器
filter=("uid=name1,name2,name3....")  .

1 个答案:

答案 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=name1uid=name2uid=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 *)

希望这有帮助!