クラス JdbcUserDetailsManager
- java.lang.Object
-
- 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.Aware、org.springframework.beans.factory.InitializingBean、org.springframework.context.MessageSourceAware、UserDetailsService、GroupManager、UserDetailsManager
public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsManager, GroupManager
親クラス JdbcDaoImpl と同じテーブル構造に基づく Jdbc ユーザー管理サービス。ユーザーとグループの両方に CRUD 操作を提供します。
enableAuthoritiesプロパティが false に設定されている場合、createUser、updateUser、deleteUser の呼び出しでは、UserDetails からの権限は保存されず、ユーザーの権限も削除されません。このクラスは、個人用にロードされた権限と、個人がメンバーであるグループ用にロードされた権限を区別できないため、この実装を使用してユーザーを管理する場合は、この点を考慮することが重要です。- 導入:
- 2.0
フィールド概要
フィールド 修飾子と型 フィールド 説明 static java.lang.StringDEF_CHANGE_PASSWORD_SQLstatic java.lang.StringDEF_CREATE_USER_SQLstatic java.lang.StringDEF_DELETE_GROUP_AUTHORITIES_SQLstatic java.lang.StringDEF_DELETE_GROUP_AUTHORITY_SQLstatic java.lang.StringDEF_DELETE_GROUP_MEMBER_SQLstatic java.lang.StringDEF_DELETE_GROUP_MEMBERS_SQLstatic java.lang.StringDEF_DELETE_GROUP_SQLstatic java.lang.StringDEF_DELETE_USER_AUTHORITIES_SQLstatic java.lang.StringDEF_DELETE_USER_SQLstatic java.lang.StringDEF_FIND_GROUP_ID_SQLstatic java.lang.StringDEF_FIND_GROUPS_SQLstatic java.lang.StringDEF_FIND_USERS_IN_GROUP_SQLstatic java.lang.StringDEF_GROUP_AUTHORITIES_QUERY_SQLstatic java.lang.StringDEF_INSERT_AUTHORITY_SQLstatic java.lang.StringDEF_INSERT_GROUP_AUTHORITY_SQLstatic java.lang.StringDEF_INSERT_GROUP_MEMBER_SQLstatic java.lang.StringDEF_INSERT_GROUP_SQLstatic java.lang.StringDEF_RENAME_GROUP_SQLstatic java.lang.StringDEF_UPDATE_USER_SQLstatic java.lang.StringDEF_USER_EXISTS_SQLprotected org.apache.commons.logging.Logloggerクラス org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl から継承されたフィールド
DEF_AUTHORITIES_BY_USERNAME_QUERY, DEF_GROUP_AUTHORITIES_BY_USERNAME_QUERY, DEF_USERS_BY_USERNAME_QUERY, DEFAULT_USER_SCHEMA_DDL_LOCATION, messages
コンストラクター概要
コンストラクター コンストラクター 説明 JdbcUserDetailsManager()JdbcUserDetailsManager(javax.sql.DataSource dataSource)
方法の概要
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddGroupAuthority(java.lang.String groupName, GrantedAuthority authority)グループに新しい権限を割り当てます。voidaddUserToGroup(java.lang.String username, java.lang.String groupName)ユーザーを特定のグループのメンバーにします。voidchangePassword(java.lang.String oldPassword, java.lang.String newPassword)現在のユーザーのパスワードを変更します。voidcreateGroup(java.lang.String groupName, java.util.List<GrantedAuthority> authorities)指定された権限のリストを使用して新しいグループを作成します。protected AuthenticationcreateNewAuthentication(Authentication currentAuth, java.lang.String newPassword)voidcreateUser(UserDetails user)指定された詳細で新しいユーザーを作成します。voiddeleteGroup(java.lang.String groupName)すべてのメンバーと権限を含むグループを削除します。voiddeleteUser(java.lang.String username)指定されたログイン名を持つユーザーをシステムから削除します。java.util.List<java.lang.String>findAllGroups()このグループマネージャーが制御するすべてのグループの名前を返します。java.util.List<GrantedAuthority>findGroupAuthorities(java.lang.String groupName)グループに割り当てられているオーソリティのリストを取得します。java.util.List<java.lang.String>findUsersInGroup(java.lang.String groupName)グループのメンバーであるユーザーを見つけますprotected voidinitDao()protected java.util.List<UserDetails>loadUsersByUsername(java.lang.String username)SQL usersByUsernameQuery を実行し、UserDetails オブジェクトのリストを返します。voidremoveGroupAuthority(java.lang.String groupName, GrantedAuthority authority)グループに割り当てられた権限から権限を削除しますvoidremoveUserFromGroup(java.lang.String username, java.lang.String groupName)グループのユーザーのメンバーシップを削除します。voidrenameGroup(java.lang.String oldName, java.lang.String newName)割り当てられた権限またはメンバーを変更せずにグループの名前を変更します。voidsetAuthenticationManager(AuthenticationManager authenticationManager)voidsetChangePasswordSql(java.lang.String changePasswordSql)voidsetCreateAuthoritySql(java.lang.String createAuthoritySql)voidsetCreateUserSql(java.lang.String createUserSql)voidsetDeleteGroupAuthoritiesSql(java.lang.String deleteGroupAuthoritiesSql)voidsetDeleteGroupAuthoritySql(java.lang.String deleteGroupAuthoritySql)voidsetDeleteGroupMemberSql(java.lang.String deleteGroupMemberSql)voidsetDeleteGroupMembersSql(java.lang.String deleteGroupMembersSql)voidsetDeleteGroupSql(java.lang.String deleteGroupSql)voidsetDeleteUserAuthoritiesSql(java.lang.String deleteUserAuthoritiesSql)voidsetDeleteUserSql(java.lang.String deleteUserSql)voidsetFindAllGroupsSql(java.lang.String findAllGroupsSql)voidsetFindGroupIdSql(java.lang.String findGroupIdSql)voidsetFindUsersInGroupSql(java.lang.String findUsersInGroupSql)voidsetGroupAuthoritiesSql(java.lang.String groupAuthoritiesSql)voidsetInsertGroupAuthoritySql(java.lang.String insertGroupAuthoritySql)voidsetInsertGroupMemberSql(java.lang.String insertGroupMemberSql)voidsetInsertGroupSql(java.lang.String insertGroupSql)voidsetRenameGroupSql(java.lang.String renameGroupSql)voidsetUpdateUserSql(java.lang.String updateUserSql)voidsetUserCache(UserCache userCache)オプションで、UserCache がアプリケーションで使用されている場合は設定します。voidsetUserExistsSql(java.lang.String userExistsSql)voidupdateUser(UserDetails user)指定されたユーザーを更新します。booleanuserExists(java.lang.String username)指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。クラス org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl から継承されたメソッド
addCustomAuthorities, createUserDetails, getAuthoritiesByUsernameQuery, getEnableAuthorities, getEnableGroups, getMessages, getRolePrefix, getUsersByUsernameQuery, isUsernameBasedPrimaryKey, loadGroupAuthorities, loadUserAuthorities, loadUserByUsername, setAuthoritiesByUsernameQuery, setEnableAuthorities, setEnableGroups, setGroupAuthoritiesByUsernameQuery, setMessageSource, setRolePrefix, setUsernameBasedPrimaryKey, setUsersByUsernameQuery
クラス org.springframework.jdbc.core.support.JdbcDaoSupport から継承されたメソッド
checkDaoConfig, createJdbcTemplate, getConnection, getDataSource, getExceptionTranslator, getJdbcTemplate, initTemplateConfig, releaseConnection, setDataSource, setJdbcTemplate
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インターフェース org.springframework.security.core.userdetails.UserDetailsService から継承されたメソッド
loadUserByUsername
フィールドの詳細
DEF_CREATE_USER_SQL
public static final java.lang.String DEF_CREATE_USER_SQL
- 関連事項:
- 定数フィールド値
DEF_DELETE_USER_SQL
public static final java.lang.String DEF_DELETE_USER_SQL
- 関連事項:
- 定数フィールド値
DEF_UPDATE_USER_SQL
public static final java.lang.String DEF_UPDATE_USER_SQL
- 関連事項:
- 定数フィールド値
DEF_INSERT_AUTHORITY_SQL
public static final java.lang.String DEF_INSERT_AUTHORITY_SQL
- 関連事項:
- 定数フィールド値
DEF_DELETE_USER_AUTHORITIES_SQL
public static final java.lang.String DEF_DELETE_USER_AUTHORITIES_SQL
- 関連事項:
- 定数フィールド値
DEF_USER_EXISTS_SQL
public static final java.lang.String DEF_USER_EXISTS_SQL
- 関連事項:
- 定数フィールド値
DEF_CHANGE_PASSWORD_SQL
public static final java.lang.String DEF_CHANGE_PASSWORD_SQL
- 関連事項:
- 定数フィールド値
DEF_FIND_GROUPS_SQL
public static final java.lang.String DEF_FIND_GROUPS_SQL
- 関連事項:
- 定数フィールド値
DEF_FIND_USERS_IN_GROUP_SQL
public static final java.lang.String DEF_FIND_USERS_IN_GROUP_SQL
- 関連事項:
- 定数フィールド値
DEF_INSERT_GROUP_SQL
public static final java.lang.String DEF_INSERT_GROUP_SQL
- 関連事項:
- 定数フィールド値
DEF_FIND_GROUP_ID_SQL
public static final java.lang.String DEF_FIND_GROUP_ID_SQL
- 関連事項:
- 定数フィールド値
DEF_INSERT_GROUP_AUTHORITY_SQL
public static final java.lang.String DEF_INSERT_GROUP_AUTHORITY_SQL
- 関連事項:
- 定数フィールド値
DEF_DELETE_GROUP_SQL
public static final java.lang.String DEF_DELETE_GROUP_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_RENAME_GROUP_SQL
public static final java.lang.String DEF_RENAME_GROUP_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
メソッドの詳細
initDao
protected void initDao() throws org.springframework.context.ApplicationContextException- オーバーライド:
- クラス
JdbcDaoImplのinitDao - 例外:
org.springframework.context.ApplicationContextException
loadUsersByUsername
protected java.util.List<UserDetails> loadUsersByUsername(java.lang.String username)
SQL usersByUsernameQuery を実行し、UserDetails オブジェクトのリストを返します。通常、一致するユーザーは 1 人だけです。- オーバーライド:
- クラス
JdbcDaoImplのloadUsersByUsername
createUser
public void createUser(UserDetails user)
インターフェースからコピーされた説明:UserDetailsManager指定された詳細で新しいユーザーを作成します。- 次で指定:
- インターフェース
UserDetailsManager内のcreateUser
updateUser
public void updateUser(UserDetails user)
インターフェースからコピーされた説明:UserDetailsManager指定されたユーザーを更新します。- 次で指定:
- インターフェース
UserDetailsManager内のupdateUser
deleteUser
public void deleteUser(java.lang.String username)
インターフェースからコピーされた説明:UserDetailsManager指定されたログイン名を持つユーザーをシステムから削除します。- 次で指定:
- インターフェース
UserDetailsManager内のdeleteUser
changePassword
public void changePassword(java.lang.String oldPassword, java.lang.String newPassword) throws AuthenticationExceptionインターフェースからコピーされた説明:UserDetailsManager現在のユーザーのパスワードを変更します。これにより、永続ユーザーリポジトリ(datbase、LDAP など)のユーザーのパスワードが変更されます。- 次で指定:
- インターフェース
UserDetailsManager内のchangePassword - パラメーター:
oldPassword- 現在のパスワード (必要に応じて再認証する)newPassword- 変更するパスワード- 例外:
AuthenticationException
createNewAuthentication
protected Authentication createNewAuthentication(Authentication currentAuth, java.lang.String newPassword)
userExists
public boolean userExists(java.lang.String username)
インターフェースからコピーされた説明:UserDetailsManager指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。- 次で指定:
- インターフェース
UserDetailsManager内のuserExists
findAllGroups
public java.util.List<java.lang.String> findAllGroups()
インターフェースからコピーされた説明:GroupManagerこのグループマネージャーが制御するすべてのグループの名前を返します。- 次で指定:
- インターフェース
GroupManager内のfindAllGroups
findUsersInGroup
public java.util.List<java.lang.String> findUsersInGroup(java.lang.String groupName)
インターフェースからコピーされた説明:GroupManagerグループのメンバーであるユーザーを見つけます- 次で指定:
- インターフェース
GroupManager内のfindUsersInGroup - パラメーター:
groupName- メンバーが必要なグループ- 戻り値:
- グループメンバーのユーザー名
createGroup
public void createGroup(java.lang.String groupName, java.util.List<GrantedAuthority> authorities)インターフェースからコピーされた説明:GroupManager指定された権限のリストを使用して新しいグループを作成します。- 次で指定:
- インターフェース
GroupManager内のcreateGroup - パラメーター:
groupName- 新しいグループの名前authorities- このグループに割り当てられる権限。
deleteGroup
public void deleteGroup(java.lang.String groupName)
インターフェースからコピーされた説明:GroupManagerすべてのメンバーと権限を含むグループを削除します。- 次で指定:
- インターフェース
GroupManager内のdeleteGroup - パラメーター:
groupName- 削除するグループ。
renameGroup
public void renameGroup(java.lang.String oldName, java.lang.String newName)インターフェースからコピーされた説明:GroupManager割り当てられた権限またはメンバーを変更せずにグループの名前を変更します。- 次で指定:
- インターフェース
GroupManager内のrenameGroup
addUserToGroup
public void addUserToGroup(java.lang.String username, java.lang.String groupName)インターフェースからコピーされた説明:GroupManagerユーザーを特定のグループのメンバーにします。- 次で指定:
- インターフェース
GroupManager内のaddUserToGroup - パラメーター:
username- メンバーシップを付与されるユーザー。groupName- ユーザーが追加されるグループの名前。
removeUserFromGroup
public void removeUserFromGroup(java.lang.String username, java.lang.String groupName)インターフェースからコピーされた説明:GroupManagerグループのユーザーのメンバーシップを削除します。- 次で指定:
- インターフェース
GroupManager内のremoveUserFromGroup - パラメーター:
username- ユーザーgroupName- それらを削除するグループ
findGroupAuthorities
public java.util.List<GrantedAuthority> findGroupAuthorities(java.lang.String groupName)
インターフェースからコピーされた説明:GroupManagerグループに割り当てられているオーソリティのリストを取得します。- 次で指定:
- インターフェース
GroupManager内のfindGroupAuthorities
removeGroupAuthority
public void removeGroupAuthority(java.lang.String groupName, GrantedAuthority authority)インターフェースからコピーされた説明:GroupManagerグループに割り当てられた権限から権限を削除します- 次で指定:
- インターフェース
GroupManager内のremoveGroupAuthority
addGroupAuthority
public void addGroupAuthority(java.lang.String groupName, GrantedAuthority authority)インターフェースからコピーされた説明:GroupManagerグループに新しい権限を割り当てます。- 次で指定:
- インターフェース
GroupManager内のaddGroupAuthority
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 が使用するキャッシュ。