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

Spring Ldaptemplate 2将成员添加到组

狄富
2023-03-14

使用Spring LdapTemboard在组中添加成员的最佳方法是什么。我已经成功创建用户并删除用户ex。但我正在尝试添加成员,然后我面临问题。

添加成员代码:

public boolean addMemberToGroup(List<String> groupList, User user) {
    boolean isAddedSuccessfully=false;
    try{
        for(int i=0;i<groupList.size();i++){
            Name groupDn = buildGroupDn(groupList.get(i));
            DirContextOperations ctx =   ldapTemplate.lookupContext(groupDn);
            ctx.addAttributeValue("member",buildPersonDn(user.getUid()));
            ldapTemplate.update(ctx);
            }
        isAddedSuccessfully=true;
    }
    catch(Exception e){
        isAddedSuccessfully=false;

    }
    return isAddedSuccessfully;
}

private Name buildGroupDn(String groupName) {
    return LdapNameBuilder.newInstance("cn=groups").add("cn", groupName).build();
}

private Name buildPersonDn(String userID) {
    return LdapNameBuilder.newInstance()
        .add("uid", userID).add("cn", "users")
        .build();

}

addMemberToGroup异常:Class Class org。springframework。ldap。果心DirContextAdapter必须具有类级接口组织。springframework。ldap。odm。注释。条目注释。

请让我知道我错过了什么。

共有2个答案

牟子真
2023-03-14

虽然这是一个老问题,但这是我最近提出的一个问题。对于将来来到这里的任何人来说,这个问题类似于在Spring中发现的格式错误的“member”属性值。把这两个问题的信息放在一起,我找到了问题的解决方案,并在这里分享了对我有用的东西。

除了使用LdapTemplate类的modifyAttributes方法外,在添加成员时,传递字符串对象作为DirContextOperations类的addAttributeValue方法的第二个参数也很重要,而不是传递名称对象。在相应的名称对象上调用的toString方法实现了这个技巧。

原始代码:

DirContextOperations ctx = ldapTemplate.lookupContext(groupDn);
ctx.addAttributeValue("member",buildPersonDn(user.getUid()));
ldapTemplate.update(ctx);

请尝试以下操作:

DirContextOperations ctx = ldapTemplate.lookupContext(groupDn);
ctx.addAttributeValue("member",buildPersonDn(user.getUid()).toString());
ldapTemplate.modifyAttributes(ctx);
洪俊捷
2023-03-14

update方法用于ODM注释类。使用DirContextAdapter时,应使用modifyAttributes方法。

 类似资料:
  • 本文向大家介绍F# 将成员函数添加到记录,包括了F# 将成员函数添加到记录的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 营销通是纷享销客中的一个业务应用,如果您想将其他市场人员添加到营销通,您可以进行以下操作: 1. 添加使用成员,访问【营销通】-【设置】,进入【权限管理】,在【使用成员】添加市场人员,并分配对应的营销通功能权限即可访问营销通; 小贴士: 营销通应用管理员即为营销通的超级管理员,使用成员无需设置为应用管理员; 使用成员中的角色为营销通功能权限,使用成员的数据权限需由系统管理员在CRM管理后台-数据管

  • 问题内容: 我在互联网上找到了很多有关将成员添加到Googlegroups中的网上论坛的信息,但是我无法设法使其中的任何一个工作。 我正在使用Python-DJango。 使用业务帐户,我设法使用Provisioning API添加了它们,但是我无法使用新的Directory API来添加它们。 问题是我想加人的群组不是业务群组,而是普通的googlegroups群组: group_name@go

  • 我已经建立了一个新的服务帐户,可以访问Google Drive API。我现在想与服务帐户用户共享我的一个驱动器。 现有建议建议建议您只需使用服务帐户电子邮件地址共享驱动器。不幸的是,这会产生以下错误: 我需要做些什么来让我的服务账户成为“谷歌账户”吗? 谢谢 卡尔

  • 登录企业管理,企业管理-首页-添加成员 登录企业管理,人员管理-成员-添加成员

  • 问题内容: 我想创建一个有条件添加成员的对象。简单的方法是: 现在,我想编写一个更惯用的代码。我在尝试: 但是,现在是,其值为的成员。这不是期望的结果。 有方便的解决方案吗? 更新资料 我寻求一个可以解决几个成员的一般情况的解决方案。 问题答案: 在纯Javascript中,我想不出比您的第一个代码片段更惯用的东西。 但是,如果不是不可能使用jQuery库,那么$.extend()应该符合您的要求