春季格式错误的“成员"属性值 [英] Spring Malformed 'member' attribute value

查看:274
本文介绍了春季格式错误的“成员"属性值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建必须连接到活动目录的应用程序.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆