搜索在LDAP中向同一经理报告的用户

时间:2013-10-01 10:32:24

标签: java ldap

我正在尝试从Java查询LDAP,以便让所有用户向同一个经理报告。

当我使用searchFilter查询为 - String searchFilter = "(&(objectClass=user)(sAMAccountName=" + search + "))";

我得到的输出为manager=CN=Eve\, Adam,OU=something,OU=something,OU=StandardUser,OU=User,DC=something,DC=something,DC=something

但是,当我的搜索查询为String searchFilter = "(&(objectClass=user)(manager=CN=Eve*,OU=StandardUser,OU=User,DC=something,DC=something,DC=something))";

OR

String searchFilter = "(&(objectClass=user)(manager=CN=Eve*))";

我没有得到输出。

以下是我尝试获取数据的方式。

String searchBase = "DC=something,DC=something,DC=something";
String returnedAtts[] = {"*"};
SearchControls searchCtls = new SearchControls();
searchCtls.setReturningAttributes(returnedAtts);
NamingEnumeration answer = ctxGC.search(searchBase, searchFilter, searchCtls);

请注意 - DC=something肯定有一些价值。

1 个答案:

答案 0 :(得分:2)

客户端正在尝试使用带有DN((manager=CN=Eve*))的子字符串过滤器。 DN没有子字符串匹配规则,因此子字符串过滤器不能与DN一起使用。在搜索过滤器中指定DN或在搜索请求中指定基础对象时,LDAP客户端必须使用完整的DN,例如cn=user,ou=people,dc=example,dc=com

另见