繁体   English   中英

[LDAP:错误代码 32 - 0000208D:NameErr:DSID-03100241,问题 2001 (NO_OBJECT),数据 0,最佳匹配:

[英][LDAP: error code 32 - 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of:

我正在尝试使用 Spring Boot 和以下代码将用户添加到 Active Directory 组。

public boolean addMemberToGroup(String groupName, Person p) {
    boolean status = false;
    Name groupDn = buildGroupDn(groupName);
    Name personDn = buildPersonDn(p);

    try {
        DirContextOperations ctx = ldapTemplate.lookupContext(groupDn);
        ctx.addAttributeValue(UNIQUE_MEMBER, personDn);
        ldapTemplate.modifyAttributes(ctx);
               
    } catch (Exception e) {
        logException
    }
    return status;
}

private Name buildGroupDn(String groupName) {
    return LdapNameBuilder.newInstance(baseLdapPath)
            .add("OU", "ghtc")
            .add("OU", "IT")
            .add("OU", "Groups")           
                    
            .add("CN", groupName)
            .build();
}

baseLdapPath = DC=emea,DC=testdir,DC=net这被添加到 application.properties 文件中。

但是当ldapTemplate.lookupContext(groupDn); 执行,出现以下异常:

嵌套异常是 javax.naming.NameNotFoundException:[LDAP:错误代码 32 - 0000208D:NameErr:DSID-03100241,问题 2001(NO_OBJECT),数据 0,最佳匹配:'DC=emea,DC=testdir,DC=net'剩余名称 'CN=GroupAMC,OU=Groups,OU=IT,OU=ghtc,DC=emea,DC=testdir,DC=net'*

我已验证组的可分辨名称为CN=GroupAMC,OU=Groups,OU=IT,OU=ghtc,DC=emea,DC=testdir,DC=net

我在这里想念什么?

在将用户添加到 ldap 时,我能够使用以下链接解决错误 Ldap 错误代码 32

问题在于构建 groupName 时的 baseDn。 删除 baseLdapPath 解决了这个问题

private Name buildGroupDn(String groupName) {
        return LdapNameBuilder.newInstance()
                .add("OU", "ghtc")
                .add("OU", "IT")
                .add("OU", "Groups")           
                
                .add("CN", groupName)
                .build();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM