Spring LDAP FAQ
Operational Attributes
How do I remove an operational attribute by using context.removeAttributeValue()
?
默认情况下,DirContextAdapter
仅读取可见的属性。这是因为只有在明确要求时才会由服务器返回操作属性,而 Spring LDAP 无法知道要询问哪些属性。这意味着未使用操作属性填充 DirContextAdapter
。因此,removeAttributeValue
没有任何效果(因为从 DirContextAdapter
的角度来看,它本来就不存在)。
基本上有两种方法可以做到这一点:
-
使用需要属性名称作为参数的搜索或查看方法,如
LdapTemplate#lookup(Name, String[], ContextMapper)
。然后使用 `ContextMapper`执行返回 `mapFromContext()`中提供的 `DirContextAdapter`的实现。 -
直接使用
LdapTemplate#modifyAttributes(Name, ModificationItem[])
,手动建立 `ModificationItem`数组。