当前位置: 首页 > 知识库问答 >
问题:

Spring格式错误的“成员”属性值

钱澄邈
2023-03-14

我正在创建一个必须连接到active directory的应用程序。

在处理更新组成员时,我实际上面临着一个问题。

组名为:GG Collaboration Agencyxxx

下面是引发异常的我的GroupRepository类代码:

 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)

共有3个答案

简俊楚
2023-03-14

在添加属性值时,只需调用javax上的toString()方法。命名。名称类型。这样地:

ctx.addAttributeValue("member", userDn.toString());

它将解决这个问题。

邴星洲
2023-03-14

“成员”属性中的值是多少?有些特殊字符是不允许的。允许的LDAP属性字符

漆雕嘉茂
2023-03-14

“member”属性只允许字符串作为值,而不允许LDAPName作为对象。因此,在将其放入属性之前,请将您的userDn转换为字符串。

 类似资料:
  • 问题内容: 我想知道有什么方法可以强制实现者类声明对象的句柄/基元,就像它们对方法所做的那样。例如: 在上述方法中,我们如何强制Tile类使用该接口声明height和width属性?由于某些原因,我只想使用界面来做! 我最初考虑将其与继承一起使用。但是,我必须处理3个班级。 长方形 瓦 JLabel! class Tile extends JLabel implements Rectangle {

  • 表格中的每个单元格,都是盒模型中一个独立的盒子,并生成一个矩形框。因此,盒模型中几乎所有的属性,如边框、内边距、背景、对齐方式、文本、字体等,都适用于单元格的 td 元素。但有一点除外,外边距属性对 td 元素无效,相邻单元格之间的距离,是通过 border-spacing属性进行调整,而不是外边距属性。 在CSS2中,为表格定义了 5 个专用的属性,分别为 table-layout属性、capt

  • 问题内容: 我只是注意到Swift的成员是隐式的。 例如,这只会调用一次: 这背后的原理是什么? 如果我想要相反的行为怎么办? 问题答案: 该属性定义了一个“类型属性”,该属性仅被实例化一次。正如您所注意到的,这是懒惰发生的,因为静态行为就像全局变量一样。正如Swift编程语言:属性所说: 全局常量和变量总是以与惰性存储属性类似的方式延迟计算。与惰性存储的属性不同,全局常量和变量不需要用修饰符标记

  • 我创建了我的自定义用户模型。在执行迁移时,我会收到一个ATRIBUTEERROR 例外是: 回溯(最近一次呼叫最后一次): 文件"manage.py",第22行,execute_from_command_line(sys.argv) 文件“C:\Users\Nutzer\AppData\Local\Programs\Python\Python36-32\lib\site packages\djan

  • 在将配置单元外部表从RC格式升级为ORC格式并在其上运行MSCK修复表(当我确实从表中选择全部时)时,我得到以下错误- 将RC格式的历史数据迁移到ORC格式的新定义的过程是什么?

  • 它可能是重复的,但我尝试了所有我在StackOverflow上找到的解决方案。 我不能使用但我不能。我尝试修改我的makefile太多次了。我的最后一个配置是: Android.mk LOCAL_PATH:=$(调用my-dir) 包括$(LOCAL_PATH)/jsoncpp/android.mk 包括/users/rafaelruizmunoz/desktop/androiddevelopme