Spring LDAP FAQ

操作属性

context.removeAttributeValue() を使用して操作属性を削除するにはどうすればよいですか ?

デフォルトでは、DirContextAdapter は可視属性のみを読み取ります。これは、運用属性は明示的に要求された場合にのみサーバーから返され、Spring LDAP がどの属性を要求すべきかを知る方法がないためです。つまり、DirContextAdapter には運用属性が設定されません。結果として、removeAttributeValue は何の効果も持ちません (DirContextAdapter の観点からすると、そもそも存在していなかったため)。

これを行うには基本的に 2 つの方法があります。

  • LdapTemplate#lookup(Name, String[], ContextMapper) など、属性名を引数として受け取る検索メソッドまたはルックアップメソッドを使用します。次に、提供された DirContextAdapter を mapFromContext() で返す ContextMapper 実装を使用します。

  • LdapTemplate#modifyAttributes(Name, ModificationItem[]) を直接使用し、ModificationItem 配列を手動で構築します。