春季格式错误的“成员"属性值 [英] Spring Malformed 'member' attribute value
本文介绍了春季格式错误的“成员"属性值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建必须连接到活动目录的应用程序.
I m creating an application that has to connect to an active directory.
在处理组成员更新时,我实际上遇到了一个问题.
I m actually facing a problem when dealing with updating a group member.
群组名称为: GG-Collaboration-AgenceXXX
这是抛出异常的我的GroupRepository
类代码:
Here's my GroupRepository
class code that throws the exception :
public void addMemberToGroup(String groupName, User user) {
Name groupDn = this.buildGroupDn(groupName);
Name userDn = this.buildPersonDn(user.getFirstName() + " " + user.getLastName(), user.getCompany(), user.getCountry().toString());
DirContextOperations ctx = this.ldapTemplate.lookupContext(groupDn);
ctx.addAttributeValue("member", userDn);
System.out.println(userDn);
this.ldapTemplate.modifyAttributes(ctx);
}
private Name buildGroupDn(String groupName) {
return LdapNameBuilder.newInstance("CN=" + groupName).build();
}
private Name buildPersonDn(String fullname, String company, String country) {
return LdapNameBuilder.newInstance("DC=test,DC=lan").add("OU", "Utilisateurs").add("CN", fullname).build();
}
这是我的全栈错误:
Malformed 'member' attribute value; nested exception is javax.naming.directory.InvalidAttributeValueException: Malformed 'member' attribute value; remaining name 'CN=GG-Collaboration-AgenceXXX'
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:132)
Caused by: javax.naming.directory.InvalidAttributeValueException: Malformed 'member' attribute value
at com.sun.jndi.ldap.LdapClient.encodeAttribute(LdapClient.java:984)
推荐答案
"member"属性仅允许将字符串作为值,而不允许将LDAPName
对象用作字符串.因此,先将userDn
转换为字符串,然后再将其放入属性中.
The "member" attribute only allows strings as value and not LDAPName
objects. So convert your userDn
to a string before putting it into the attribute.
这篇关于春季格式错误的“成员"属性值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文