Java LDAP搜索两个组

Java LDAP搜索两个组,java,ldap,Java,Ldap,我正在尝试用java进行ldap搜索。我正在使用ldap ctx 我发现有两棵小树需要搜索。 例如: resultsTest = lctx.search("OU=Company Beta,DC=example,DC=com", "something", SUBTREE_SCOPE); (我确信“某物”是正确的,因为我测试了很多结果) 在公司测试版中有团队A、团队B、团队C和团队D 我发现如果我在搜索开始时添加其中任何一个 OU=team A 或 我可以搜索团队A或团队B中的成员。 但我想搜索

我正在尝试用java进行ldap搜索。我正在使用ldap ctx

我发现有两棵小树需要搜索。 例如:

resultsTest = lctx.search("OU=Company Beta,DC=example,DC=com", "something", SUBTREE_SCOPE);
(我确信“某物”是正确的,因为我测试了很多结果)

在公司测试版中有团队A、团队B、团队C和团队D

我发现如果我在搜索开始时添加其中任何一个

OU=team A

我可以搜索团队A或团队B中的成员。 但我想搜索团队A和团队B的结果,而不是搜索其中任何一个


谁能伸出援助之手?我在很多网站上搜索过,但找不到解决方案。

许多LDAP服务器实现将允许RFC 2254中定义的,允许您执行的

在您希望包含在搜索中的OU上方定义您的基础,然后使用类似以下内容的过滤器:

(&(|(ou:dn:=TeamA)(ou:dn:=TeamB))(objectclass=inetorgperson)(sn=willeke))

让我们知道它是热的。

不幸的是,它说不,你不能。不幸的是,没有语法允许您指定这样一个不同的搜索基。但是,如果所有用户都在
team A
team B
的组中,那么您可以使用带有逻辑or条件的
memberOf
属性进行筛选(这假定active directory具有用户帐户组成员身份的
memberOf
属性),我尝试添加(|(ou:dn:=TeamA)(ou:dn:=TeamB))对于搜索筛选器,它不起作用。(这意味着返回0个结果)。您正在使用哪个Ldap服务器?
(&(|(ou:dn:=TeamA)(ou:dn:=TeamB))(objectclass=inetorgperson)(sn=willeke))