首页 > 解决方案 > JAVA:如何将多个成员添加到 LDAP 中的组

问题描述

我正在尝试创建一个组并将一些用户添加到组中。我可以添加一个成员。

当我尝试添加多个成员时,结果不符合我的预期。

Java 代码:

public static DirContext createGroup(String groupName,ArrayList<String> members,DirContext ctx) {

    try {

    Attributes attrs = new BasicAttributes(true); 
    Attribute objclass = new BasicAttribute("objectClass");
    objclass.add("top");
    objclass.add("groupOfNames");

    Attribute groupname = new BasicAttribute("cn", groupName);

    attrs.put(objclass);
    attrs.put(groupname);

    Attribute memberAtt;

    for (int i = 0;i<members.size();i++) 
    { 
        memberAtt = new BasicAttribute("member", members.get(i));
        attrs.put(memberAtt);
    }

    ctx.createSubcontext("cn="+groupName+",ou=Groups", attrs);
    } catch (NamingException e) {
        e.printStackTrace();
    }
    return ctx;
}

标签: javaldap

解决方案


您正在循环中创建具有相同属性名称和单个值的新 BasicAttribute。您应该使用memberAtt.add(members.get(i))将值添加到 memberAtt BasicAttribute。


推荐阅读