【发布时间】:2010-02-23 09:48:42
【问题描述】:
我们一直在尝试使用 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) 中使用了一个用户,它可以工作!!!但是为什么它不允许它以外的用户使用呢?
【问题讨论】:
-
我建议您将问题修改为“通过 JNDI 连接到 ADS 时出错”,因为您的问题是获取连接,而不是添加用户。
-
我们没有连接问题...问题是将用户添加到组中。
标签: java active-directory ldap jndi