クラス LdapUserDetailsManager

java.lang.ObjectSE
org.springframework.security.ldap.userdetails.LdapUserDetailsManager
実装されたすべてのインターフェース:
UserDetailsServiceUserDetailsManager

public class LdapUserDetailsManager extends ObjectSE implements UserDetailsManager
UserDetailsManager の Ldap 実装。

これは、"userDnBase" プロパティと "groupSearchBase" プロパティでそれぞれ定義された個別のコンテキストにユーザーとグループ / ロールが保存される標準設定を中心に設計されています。

この場合、LDAP は純粋に情報を取得するために使用されており、このクラスは他の UserDetailsService の代わりに認証に使用できます。LDAP 認証プロバイダーのセットアップとは異なり、認証はディレクトリに対して直接実行されません。

導入:
2.0
  • コンストラクターの詳細

    • LdapUserDetailsManager

      public LdapUserDetailsManager(org.springframework.ldap.core.ContextSource contextSource)
  • メソッドの詳細

    • loadUserByUsername

      public UserDetails loadUserByUsername(StringSE username)
      インターフェースからコピーされた説明: UserDetailsService
      ユーザー名に基づいてユーザーを見つけます。実際の実装では、実装インスタンスの構成方法に応じて、検索で大文字と小文字が区別される場合と、大文字と小文字が区別されない場合があります。この場合、戻ってくる UserDetails オブジェクトのユーザー名は、実際にリクエストされたものとは異なる場合があります。
      次で指定:
      インターフェース UserDetailsServiceloadUserByUsername 
      パラメーター:
      username - データが必要なユーザーを識別するユーザー名。
      戻り値:
      完全に入力されたユーザーレコード (非 null)
    • changePassword

      public void changePassword(StringSE oldPassword, StringSE newPassword)
      現在のユーザーのパスワードを変更します。ユーザー名はセキュリティコンテキストから取得されます。対応する LDAP サーバーの機能に応じて、ユーザーのパスワードを変更するための 2 つの戦略がサポートされています。

      1 つの方法で設定すると、このメソッドは LDAP パスワード変更拡張操作を介してユーザーのパスワードを変更します。詳細については、setUsePasswordModifyExtensionOperation(boolean) を参照してください。

      ただし、デフォルトでは、古いパスワードが指定されている場合、ユーザーとして再バインドすることで更新が行われ、ユーザーの権限を使用してパスワードが変更されます。oldPassword が null の場合、更新は、コンテキストソースによって提供される標準の読み取り / 書き込みコンテキストを使用して試行されます。

      次で指定:
      インターフェース UserDetailsManagerchangePassword 
      パラメーター:
      oldPassword - 古いパスワード
      newPassword - パスワードの新しい値。
    • createUser

      public void createUser(UserDetails user)
      インターフェースからコピーされた説明: UserDetailsManager
      指定された詳細で新しいユーザーを作成します。
      次で指定:
      インターフェース UserDetailsManagercreateUser 
    • updateUser

      public void updateUser(UserDetails user)
      インターフェースからコピーされた説明: UserDetailsManager
      指定されたユーザーを更新します。
      次で指定:
      インターフェース UserDetailsManagerupdateUser 
    • deleteUser

      public void deleteUser(StringSE username)
      インターフェースからコピーされた説明: UserDetailsManager
      指定されたログイン名を持つユーザーをシステムから削除します。
      次で指定:
      インターフェース UserDetailsManagerdeleteUser 
    • userExists

      public boolean userExists(StringSE username)
      インターフェースからコピーされた説明: UserDetailsManager
      指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。
      次で指定:
      インターフェース UserDetailsManageruserExists 
    • buildGroupDn

      protected org.springframework.ldap.core.DistinguishedName buildGroupDn(StringSE group)
      グループ名から DN を作成します。
      パラメーター:
      group - グループの名前
      戻り値:
      groupSearchBase を含む、対応するグループの DN
    • copyToContext

      protected void copyToContext(UserDetails user, org.springframework.ldap.core.DirContextAdapter ctx)
    • addAuthorities

      protected void addAuthorities(org.springframework.ldap.core.DistinguishedName userDn, CollectionSE<? extends GrantedAuthority> authorities)
    • removeAuthorities

      protected void removeAuthorities(org.springframework.ldap.core.DistinguishedName userDn, CollectionSE<? extends GrantedAuthority> authorities)
    • setUsernameMapper

      public void setUsernameMapper(LdapUsernameToDnMapper usernameMapper)
    • setPasswordAttributeName

      public void setPasswordAttributeName(StringSE passwordAttributeName)
    • setGroupSearchBase

      public void setGroupSearchBase(StringSE groupSearchBase)
    • setGroupRoleAttributeName

      public void setGroupRoleAttributeName(StringSE groupRoleAttributeName)
    • setAttributesToRetrieve

      public void setAttributesToRetrieve(StringSE[] attributesToRetrieve)
    • setUserDetailsMapper

      public void setUserDetailsMapper(UserDetailsContextMapper userDetailsMapper)
    • setGroupMemberAttributeName

      public void setGroupMemberAttributeName(StringSE groupMemberAttributeName)
      グループのメンバーであるユーザーの DN を保持する複数値属性の名前を設定します。

      通常、これは uniquemember (デフォルト値)または member です。

      パラメーター:
      groupMemberAttributeName - グループメンバーの格納に使用される属性の名前。
    • setRoleMapper

      public void setRoleMapper(org.springframework.ldap.core.AttributesMapper roleMapper)
    • setUsePasswordModifyExtensionOperation

      public void setUsePasswordModifyExtensionOperation(boolean usePasswordModifyExtensionOperation)
      ユーザーのパスワードを変更する方法を設定します。true に設定すると、changePassword(java.lang.String, java.lang.String)パスワード変更拡張操作を介してユーザーのパスワードを変更します。false に設定すると、changePassword(java.lang.String, java.lang.String) は対応するエントリの属性を直接変更することにより、ユーザーのパスワードを変更します。この設定を使用する前に、対応する LDAP サーバーがこの拡張操作をサポートしていることを確認してください。デフォルトでは、usePasswordModifyExtensionOperation は false です。
      パラメーター:
      usePasswordModifyExtensionOperation -
      導入:
      4.2.9
    • setSecurityContextHolderStrategy

      public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy)
      使用する SecurityContextHolderStrategy を設定します。デフォルトのアクションは、SecurityContextHolder に格納されている SecurityContextHolderStrategy を使用することです。
      導入:
      5.8
    • setRolePrefix

      public void setRolePrefix(StringSE rolePrefix)
      権限を変換するときに使用するロールプレフィックスを設定します。デフォルト値は "ROLE_" です。
      パラメーター:
      rolePrefix - ロールの接頭辞
      導入:
      6.3