首页 > 代码库 > 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过滤器条件与查找指定属性