我们一直在尝试使用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
)中的用户,它的工作原理!但是为什么它不允许外面的用户呢?
答案 0 :(得分:0)
错误显示“NO_OBJECT”。错误代码32是LDAP_NO_SUCH_OBJECT。所以问题是其中一个标识符是错误的。您能列出具有指定标识符的用户或组吗?
[编辑]错误消息显示best match of: ''
,这意味着它无法匹配路径的任何部分(DN),甚至不匹配第一个元素。我猜你必须使用你的情况下的完整路径(从根开始)而不是RDN。
我没有解释为什么你可以找到直接查询的对象。必须有不同的东西,但除非你发布所有代码,这与我可以提供的帮助一样多。