JNDI将用户添加到具有ADS的组

时间:2010-02-23 09:48:43

标签: java active-directory ldap jndi

我们一直在尝试使用JNDI将用户添加到群组。我们的目录服务器是Windows 2003上的Active Directory。

我们能够很好地创建用户和组。但是,使这些用户成为任何组的一部分都是一个问题。以下是代码的样子(受this启发):

ModificationItem mod[] = new ModificationItem[1];
mod[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, 
               new BasicAttribute("member", "CN=User1,OU=LocationOfUser"));
localcontext.modifyAttributes("CN=Group1,ou=Group,ou=LocationOfTheGroup", mod);

我们收到此错误:

javax.naming.NameNotFoundException: [LDAP: error code 32 - 00000525: 
NameErr: DSID-  031A0F80, problem 2001 (NO_OBJECT), data 0, best match of: ''

我们尝试绑定到子根(并且不在属性中提供完整的DN)或绑定到根(并在属性中提供完整的DN)。

编辑:我们尝试了相同的代码,但用户CN(CN=abcd,CN=Users)中的用户,它的工作原理!但是为什么它不允许外面的用户呢?

1 个答案:

答案 0 :(得分:0)

错误显示“NO_OBJECT”。错误代码32是LDAP_NO_SUCH_OBJECT。所以问题是其中一个标识符是错误的。您能列出具有指定标识符的用户或组吗?

[编辑]错误消息显示best match of: '',这意味着它无法匹配路径的任何部分(DN),甚至不匹配第一个元素。我猜你必须使用你的情况下的完整路径(从根开始)而不是RDN。

我没有解释为什么你可以找到直接查询的对象。必须有不同的东西,但除非你发布所有代码,这与我可以提供的帮助一样多。