java - LDAP 替换一个属性的列表值

标签 java ldap jndi

我有一个属性,比如 telephonenumber,它在一个人身上出现了好几次。现在我想用新数字列表替换所有数字:

<person>  
<telephonnumber>12345</telephonnumber>  
<telephonnumber>23456</telephonnumber>  
</person>  

替换为:

<person>  
<telephonnumber>56789</telephonnumber>  
<telephonnumber>78901</telephonnumber>  
</person>  

我如何在 Java 中执行此操作?

使用

mods.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("telephonnumber", "56789")));  
mods.add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("telephonnumber", "78901")));  

以所有值结束将被最后一个 ModificationItem 替换。好吧,我可以通过删除所有数字并从列表中添加所有新值来解决。但我认为 Java LDAP 直接支持它。

最佳答案

您想用您的多值电话属性创建一个单个替换。查看Oracle LDAP attributes tutorial .

// Create a multivalued attribute that has four String values
BasicAttribute oc = new BasicAttribute("objectClass", "top");
oc.add("person");
oc.add("organizationalPerson");
oc.add("inetOrgPerson");

提示:首先通过 LDIF 尝试您的 LDAP 操作在开始编码之前提交文件。

关于java - LDAP 替换一个属性的列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14398933/

相关文章:

java - Gradle 的 Java 项目的默认项目布局

java - Eclipse 中的 JUnit 测试

Java:如何使用 Ctrl+V 命令将剪贴板上的文本粘贴到 UI 对象中?

ubuntu - 除非使用 CApath 或 CAfile,否则无法验证 CA 证书

jakarta-ee - 如何以编程方式查找 EJB 的 JNDI 查找名称?

java - 将图像 DataUrl 转换为图像

python - twisted 的 LDAP 客户端

java - Spring LDAP 1.3.0 澄清

intellij-idea - IntelliJ IDEA 部署后 Wildfly 无法加载部署

java - 自定义 Tomcat JNDI 数据源