Java 在LDAP中搜索向同一管理器报告的用户

Java 在LDAP中搜索向同一管理器报告的用户,java,ldap,Java,Ldap,我试图从Java查询LDAP,以使所有用户都向同一个管理器报告 当我使用searchFilter作为-字符串searchFilter=“(&(objectClass=user)(sAMAccountName=“+search+”)进行查询时 我得到的输出是manager=CN=Eve\,Adam,OU=something,OU=something,OU=StandardUser,OU=User,DC=something,DC=something,DC=something 但是,当我的搜索查询是S

我试图从Java查询LDAP,以使所有用户都向同一个管理器报告

当我使用searchFilter作为-
字符串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))”

使用
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
肯定有一些价值。

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

另见

不过,感谢您,即使使用
String searchFilter=“(&(objectClass=user)(manager=CN=Eve\\,Adam))”我没有得到任何输出。
manager
具有DN语法,因此,客户端必须使用完整的DN,而不仅仅是其中的一部分。我尝试了
String searchFilter=“(&(objectClass=user)(manager=CN=Eve\\,Adam,OU=StandardUser,OU=user,DC=something,DC=something,DC=something))仍然没有输出。请检查
cn=eve\\,Adam
部分是否正确(空格等)。搜索筛选器中的完整DN在我转义特殊字符(在括号中)之前对我无效-请参阅