0

我正在尝试从 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))";

或者

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绝对有一些价值。

4

1 回答 1

2

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

也可以看看

于 2013-10-01T10:42:34.910 回答