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))