クラス 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
    • フィールドの詳細

      • DEF_DELETE_USER_AUTHORITIES_SQL

        public static final java.lang.String DEF_DELETE_USER_AUTHORITIES_SQL
        関連事項:
        定数フィールド値
      • DEF_FIND_USERS_IN_GROUP_SQL

        public static final java.lang.String DEF_FIND_USERS_IN_GROUP_SQL
        関連事項:
        定数フィールド値
      • DEF_INSERT_GROUP_AUTHORITY_SQL

        public static final java.lang.String DEF_INSERT_GROUP_AUTHORITY_SQL
        関連事項:
        定数フィールド値
      • DEF_DELETE_GROUP_AUTHORITIES_SQL

        public static final java.lang.String DEF_DELETE_GROUP_AUTHORITIES_SQL
        関連事項:
        定数フィールド値
      • DEF_DELETE_GROUP_MEMBERS_SQL

        public static final java.lang.String DEF_DELETE_GROUP_MEMBERS_SQL
        関連事項:
        定数フィールド値
      • DEF_INSERT_GROUP_MEMBER_SQL

        public static final java.lang.String DEF_INSERT_GROUP_MEMBER_SQL
        関連事項:
        定数フィールド値
      • DEF_DELETE_GROUP_MEMBER_SQL

        public static final java.lang.String DEF_DELETE_GROUP_MEMBER_SQL
        関連事項:
        定数フィールド値
      • DEF_GROUP_AUTHORITIES_QUERY_SQL

        public static final java.lang.String DEF_GROUP_AUTHORITIES_QUERY_SQL
        関連事項:
        定数フィールド値
      • DEF_DELETE_GROUP_AUTHORITY_SQL

        public static final java.lang.String DEF_DELETE_GROUP_AUTHORITY_SQL
        関連事項:
        定数フィールド値
      • logger

        protected final org.apache.commons.logging.Log logger
    • コンストラクターの詳細

      • JdbcUserDetailsManager

        public JdbcUserDetailsManager()
      • JdbcUserDetailsManager

        public JdbcUserDetailsManager​(javax.sql.DataSource dataSource)
    • メソッドの詳細

      • initDao

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public void setAuthenticationManager​(AuthenticationManager authenticationManager)
      • setCreateUserSql

        public void setCreateUserSql​(java.lang.String createUserSql)
      • setDeleteUserSql

        public void setDeleteUserSql​(java.lang.String deleteUserSql)
      • setUpdateUserSql

        public void setUpdateUserSql​(java.lang.String updateUserSql)
      • setCreateAuthoritySql

        public void setCreateAuthoritySql​(java.lang.String createAuthoritySql)
      • setDeleteUserAuthoritiesSql

        public void setDeleteUserAuthoritiesSql​(java.lang.String deleteUserAuthoritiesSql)
      • setUserExistsSql

        public void setUserExistsSql​(java.lang.String userExistsSql)
      • setChangePasswordSql

        public void setChangePasswordSql​(java.lang.String changePasswordSql)
      • setFindAllGroupsSql

        public void setFindAllGroupsSql​(java.lang.String findAllGroupsSql)
      • setFindUsersInGroupSql

        public void setFindUsersInGroupSql​(java.lang.String findUsersInGroupSql)
      • setInsertGroupSql

        public void setInsertGroupSql​(java.lang.String insertGroupSql)
      • setFindGroupIdSql

        public void setFindGroupIdSql​(java.lang.String findGroupIdSql)
      • setInsertGroupAuthoritySql

        public void setInsertGroupAuthoritySql​(java.lang.String insertGroupAuthoritySql)
      • setDeleteGroupSql

        public void setDeleteGroupSql​(java.lang.String deleteGroupSql)
      • setDeleteGroupAuthoritiesSql

        public void setDeleteGroupAuthoritiesSql​(java.lang.String deleteGroupAuthoritiesSql)
      • setDeleteGroupMembersSql

        public void setDeleteGroupMembersSql​(java.lang.String deleteGroupMembersSql)
      • setRenameGroupSql

        public void setRenameGroupSql​(java.lang.String renameGroupSql)
      • setInsertGroupMemberSql

        public void setInsertGroupMemberSql​(java.lang.String insertGroupMemberSql)
      • setDeleteGroupMemberSql

        public void setDeleteGroupMemberSql​(java.lang.String deleteGroupMemberSql)
      • setGroupAuthoritiesSql

        public void setGroupAuthoritiesSql​(java.lang.String groupAuthoritiesSql)
      • setDeleteGroupAuthoritySql

        public void setDeleteGroupAuthoritySql​(java.lang.String deleteGroupAuthoritySql)
      • setUserCache

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