JAVA : 如何将多个成员添加到 LDAP 中的组
JAVA : How to add more than one member to a group in LDAP
我正在尝试创建一个群组并向其中添加几个用户 group.I 可以添加一个成员。
当我尝试添加多个成员时,结果与我预期的不一样。
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;
}
您正在创建一个新的 BasicAttribute,它在循环中具有相同的属性名称和单个值。
您应该使用 memberAtt.add(members.get(i))
将值添加到 memberAtt BasicAttribute。
我正在尝试创建一个群组并向其中添加几个用户 group.I 可以添加一个成员。
当我尝试添加多个成员时,结果与我预期的不一样。
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;
}
您正在创建一个新的 BasicAttribute,它在循环中具有相同的属性名称和单个值。
您应该使用 memberAtt.add(members.get(i))
将值添加到 memberAtt BasicAttribute。