java - 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;
}
解决方案
您正在循环中创建具有相同属性名称和单个值的新 BasicAttribute。您应该使用memberAtt.add(members.get(i))
将值添加到 memberAtt BasicAttribute。
推荐阅读
- php - 使用 lexik 将公共数据添加到 JWT 响应
- c - MPI 的糟糕性能
- git - RPC 失败;curl 56 OpenSSL SSL_read:错误:140943FC:SSL 例程:ssl3_read_bytes:sslv3 警报错误记录 mac,errno 0
- css - 在 svelte 中添加动态类名
- python - 使用 Python 深度学习检测睁眼和闭眼
- python - python 3.9(蛇游戏)中的队列模块有问题
- flutter - Riverpod 中的多个 ProviderListener
- c++ - 标准 C++ 库中的空类型
- r - 过滤同一列中的不同值
- flutter - 一种在颤振中将字符串读取为飞镖代码的方法?