クラス JdbcUserDetailsManager

java.lang.ObjectSE
org.springframework.dao.support.DaoSupport
org.springframework.jdbc.core.support.JdbcDaoSupport
org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl
org.springframework.security.provisioning.JdbcUserDetailsManager
実装されたすべてのインターフェース:
org.springframework.beans.factory.Awareorg.springframework.beans.factory.InitializingBeanorg.springframework.context.MessageSourceAwareUserDetailsServiceGroupManagerUserDetailsManager

public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsManager, GroupManager
親クラス JdbcDaoImpl と同じテーブル構造に基づく Jdbc ユーザー管理サービス。

ユーザーとグループの両方に CRUD 操作を提供します。enableAuthorities プロパティが false に設定されている場合、createUser、updateUser、deleteUser の呼び出しは、 UserDetails の権限を保存したり、ユーザーの権限を削除したりしないことに注意してください。このクラスは、個人または個人がメンバーであるグループに対してロードされた権限を区別できないため、ユーザーの管理にこの実装を使用する場合、これを考慮することが重要です。

導入:
2.0
  • フィールドの詳細

  • コンストラクターの詳細

    • JdbcUserDetailsManager

      public JdbcUserDetailsManager()
    • JdbcUserDetailsManager

      public JdbcUserDetailsManager(DataSourceSE dataSource)
  • メソッドの詳細

    • initDao

      protected void initDao() throws org.springframework.context.ApplicationContextException
      オーバーライド:
      クラス JdbcDaoImplinitDao 
      例外:
      org.springframework.context.ApplicationContextException
    • loadUsersByUsername

      protected ListSE<UserDetails> loadUsersByUsername(StringSE username)
      SQL usersByUsernameQuery を実行し、UserDetails オブジェクトのリストを返します。通常、一致するユーザーは 1 人だけです。
      オーバーライド:
      クラス JdbcDaoImplloadUsersByUsername 
    • createUser

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

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

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

      public void changePassword(StringSE oldPassword, StringSE newPassword) throws AuthenticationException
      インターフェースからコピーされた説明: UserDetailsManager
      現在のユーザーのパスワードを変更します。これにより、永続的なユーザーリポジトリ (データベース、LDAP など) 内のユーザーのパスワードが変更されます。
      次で指定:
      インターフェース UserDetailsManagerchangePassword 
      パラメーター:
      oldPassword - 現在のパスワード (必要に応じて再認証する)
      newPassword - 変更するパスワード
      例外:
      AuthenticationException
    • createNewAuthentication

      protected Authentication createNewAuthentication(Authentication currentAuth, StringSE newPassword)
    • userExists

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

      public ListSE<StringSE> findAllGroups()
      インターフェースからコピーされた説明: GroupManager
      このグループマネージャーが制御するすべてのグループの名前を返します。
      次で指定:
      インターフェース GroupManagerfindAllGroups 
    • findUsersInGroup

      public ListSE<StringSE> findUsersInGroup(StringSE groupName)
      インターフェースからコピーされた説明: GroupManager
      グループのメンバーであるユーザーを見つけます
      次で指定:
      インターフェース GroupManagerfindUsersInGroup 
      パラメーター:
      groupName - メンバーが必要なグループ
      戻り値:
      グループメンバーのユーザー名
    • createGroup

      public void createGroup(StringSE groupName, ListSE<GrantedAuthority> authorities)
      インターフェースからコピーされた説明: GroupManager
      指定された権限のリストを使用して新しいグループを作成します。
      次で指定:
      インターフェース GroupManagercreateGroup 
      パラメーター:
      groupName - 新しいグループの名前
      authorities - このグループに割り当てられる権限。
    • deleteGroup

      public void deleteGroup(StringSE groupName)
      インターフェースからコピーされた説明: GroupManager
      すべてのメンバーと権限を含むグループを削除します。
      次で指定:
      インターフェース GroupManagerdeleteGroup 
      パラメーター:
      groupName - 削除するグループ。
    • renameGroup

      public void renameGroup(StringSE oldName, StringSE newName)
      インターフェースからコピーされた説明: GroupManager
      割り当てられた権限またはメンバーを変更せずにグループの名前を変更します。
      次で指定:
      インターフェース GroupManagerrenameGroup 
    • addUserToGroup

      public void addUserToGroup(StringSE username, StringSE groupName)
      インターフェースからコピーされた説明: GroupManager
      ユーザーを特定のグループのメンバーにします。
      次で指定:
      インターフェース GroupManageraddUserToGroup 
      パラメーター:
      username - メンバーシップを付与されるユーザー。
      groupName - ユーザーが追加されるグループの名前。
    • removeUserFromGroup

      public void removeUserFromGroup(StringSE username, StringSE groupName)
      インターフェースからコピーされた説明: GroupManager
      グループのユーザーのメンバーシップを削除します。
      次で指定:
      インターフェース GroupManagerremoveUserFromGroup 
      パラメーター:
      username - ユーザー
      groupName - それらを削除するグループ
    • findGroupAuthorities

      public ListSE<GrantedAuthority> findGroupAuthorities(StringSE groupName)
      インターフェースからコピーされた説明: GroupManager
      グループに割り当てられているオーソリティのリストを取得します。
      次で指定:
      インターフェース GroupManagerfindGroupAuthorities 
    • removeGroupAuthority

      public void removeGroupAuthority(StringSE groupName, GrantedAuthority authority)
      インターフェースからコピーされた説明: GroupManager
      グループに割り当てられた権限から権限を削除します
      次で指定:
      インターフェース GroupManagerremoveGroupAuthority 
    • addGroupAuthority

      public void addGroupAuthority(StringSE groupName, GrantedAuthority authority)
      インターフェースからコピーされた説明: GroupManager
      グループに新しい権限を割り当てます。
      次で指定:
      インターフェース GroupManageraddGroupAuthority 
    • setSecurityContextHolderStrategy

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

      public void setAuthenticationManager(AuthenticationManager authenticationManager)
    • setCreateUserSql

      public void setCreateUserSql(StringSE createUserSql)
    • setDeleteUserSql

      public void setDeleteUserSql(StringSE deleteUserSql)
    • setUpdateUserSql

      public void setUpdateUserSql(StringSE updateUserSql)
    • setCreateAuthoritySql

      public void setCreateAuthoritySql(StringSE createAuthoritySql)
    • setDeleteUserAuthoritiesSql

      public void setDeleteUserAuthoritiesSql(StringSE deleteUserAuthoritiesSql)
    • setUserExistsSql

      public void setUserExistsSql(StringSE userExistsSql)
    • setChangePasswordSql

      public void setChangePasswordSql(StringSE changePasswordSql)
    • setFindAllGroupsSql

      public void setFindAllGroupsSql(StringSE findAllGroupsSql)
    • setFindUsersInGroupSql

      public void setFindUsersInGroupSql(StringSE findUsersInGroupSql)
    • setInsertGroupSql

      public void setInsertGroupSql(StringSE insertGroupSql)
    • setFindGroupIdSql

      public void setFindGroupIdSql(StringSE findGroupIdSql)
    • setInsertGroupAuthoritySql

      public void setInsertGroupAuthoritySql(StringSE insertGroupAuthoritySql)
    • setDeleteGroupSql

      public void setDeleteGroupSql(StringSE deleteGroupSql)
    • setDeleteGroupAuthoritiesSql

      public void setDeleteGroupAuthoritiesSql(StringSE deleteGroupAuthoritiesSql)
    • setDeleteGroupMembersSql

      public void setDeleteGroupMembersSql(StringSE deleteGroupMembersSql)
    • setRenameGroupSql

      public void setRenameGroupSql(StringSE renameGroupSql)
    • setInsertGroupMemberSql

      public void setInsertGroupMemberSql(StringSE insertGroupMemberSql)
    • setDeleteGroupMemberSql

      public void setDeleteGroupMemberSql(StringSE deleteGroupMemberSql)
    • setGroupAuthoritiesSql

      public void setGroupAuthoritiesSql(StringSE groupAuthoritiesSql)
    • setDeleteGroupAuthoritySql

      public void setDeleteGroupAuthoritySql(StringSE deleteGroupAuthoritySql)
    • setUserCache

      public void setUserCache(UserCache userCache)
      オプションで、UserCache がアプリケーションで使用されている場合は設定します。これにより、更新が行われた後にユーザーをキャッシュから削除して、古いデータを回避できます。
      パラメーター:
      userCache - AuthenticationManager が使用するキャッシュ。