转自:http://yjm199.blog.51cto.com/4408395/1553186 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 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))