[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 使用以下代码引导将用户添加到 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);
执行时,出现如下异常:
nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of:
'DC=emea,DC=testdir,DC=net'
remaining name '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
我在这里错过了什么?
我能够使用以下 link 解决错误
问题出在构建 groupName 时的 baseDn 上。删除 baseLdapPath 解决了问题
private Name buildGroupDn(String groupName) {
return LdapNameBuilder.newInstance()
.add("OU", "ghtc")
.add("OU", "IT")
.add("OU", "Groups")
.add("CN", groupName)
.build();
}
我正在尝试使用 Spring 使用以下代码引导将用户添加到 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);
执行时,出现如下异常:
nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of: 'DC=emea,DC=testdir,DC=net' remaining name '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
我在这里错过了什么?
我能够使用以下 link 解决错误
问题出在构建 groupName 时的 baseDn 上。删除 baseLdapPath 解决了问题
private Name buildGroupDn(String groupName) {
return LdapNameBuilder.newInstance()
.add("OU", "ghtc")
.add("OU", "IT")
.add("OU", "Groups")
.add("CN", groupName)
.build();
}