首页 > 代码库 > ldap过滤器条件与查找指定属性

ldap过滤器条件与查找指定属性

public LDAPSearchResults searchLDAPSearchResults(String basedn) {

  LDAPSearchConstraintsObject();

  try {

   if (LdapConf.log.equals("yes")) {

    log.info("开始获取数据..");

   }

   ldapRsults = lc.search(basedn, LDAPConnection.SCOPE_SUB,

     "(&(objectClass=person)(!(userAccountControl=514))(mail=*))", new String[]{ "telephoneNumber",

       "cn", "displayName", "company", "mailNickname",

       "mail", "mobile", "sn", "department",

       "userPrincipalName", "streetAddress" }, false, lsc);

  } catch (LDAPException e) {

   log.info("获取数据失败..");

   log.info(e);

   e.printStackTrace();

  }

  return ldapRsults;

 }

&

与(列表中所有项必须为true

|

或(列表中至少一个必须为true

!

非(求反的项不能为true

=

相等(根据属性的匹配规则)

~=

近似等于(根据属性的匹配规则)

>=

大于(根据属性的匹配规则)

<=

小于(根据属性的匹配规则)

=*

存在(条目中必须有这个属性,但值不做限制)

*

通配符(表示这个位置可以有一个或多个字符),当指定属性值时用到

\

转义符(当遇到“*”,“(”,“)”时进行转义)

 

 

节选条件

  • 下列过滤器将搜索包含一个或多个 manager 属性值的条目。这也称为存在搜索: manager=*

  • 下列过滤器将搜索包含通用名 Ray Kultgen 的条目。这也称为等价搜索:cn=Ray Kultgen

  • 下列过滤器返回所有不包含通用名 Ray Kultgen 的条目:(!(cn=Ray Kultgen))

  • 下列过滤器返回的所有条目中都有包含子字符串 X.500 的说明属性:description=*X.500*

  • 下列过滤器返回所有组织单元为 Marketing 且说明字段中不包含子字符串 X.500 的条目: (&(ou=Marketing)(!(description=*X.500*)))

  • 下列过滤器返回所有组织单元为 Marketing 且 manager 为 Julie Fulmer 或 Cindy Zwaska 的条目: (&(ou=Marketing)(|(manager=cn=Julie Fulmer,ou=Marketing,dc=siroe,dc=com)(manager=cn=Cindy Zwaska,ou=Marketing,dc=siroe,dc=com)))

  • 下列过滤器返回所有不代表人员的条目: (!(objectClass=person))

  • 下列过滤器返回所有不代表人员且通用名近似于 printer3b 的条目:(&(!(objectClass=person))(cn~=printer3b))

ldap过滤器条件与查找指定属性