gpt4 book ai didi

java - JNDI 使用 ADS 将用户添加到组

转载 作者:行者123 更新时间:2023-12-02 09:36:33 25 4
gpt4 key购买 nike

我们一直在尝试使用 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: ''

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

编辑:我们尝试了相同的代码,但使用的是用户 CN 中的用户 (CN=abcd,CN=Users),并且它有效!但为什么它不允许其他用户使用呢?

最佳答案

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

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

不过,我没有解释为什么你可以通过直接查询找到对象。肯定有什么不同,但除非你发布所有代码,否则我只能提供帮助。

关于java - JNDI 使用 ADS 将用户添加到组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com