クラス 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.Aware、org.springframework.beans.factory.InitializingBean、org.springframework.context.MessageSourceAware、UserDetailsService、GroupManager、UserDetailsManager
親クラス JdbcDaoImpl と同じテーブル構造に基づく Jdbc ユーザー管理サービス。
ユーザーとグループの両方に CRUD 操作を提供します。enableAuthorities プロパティが false に設定されている場合、createUser、updateUser、deleteUser の呼び出しでは、UserDetails からの権限は保存されず、ユーザーの権限も削除されません。このクラスは、個人用にロードされた権限と、個人がメンバーであるグループ用にロードされた権限を区別できないため、この実装を使用してユーザーを管理する場合は、この点を考慮することが重要です。
- 導入:
- 2.0
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEstatic final StringSEprotected final org.apache.commons.logging.Logクラス 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コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidaddGroupAuthority(StringSE groupName, GrantedAuthority authority) グループに新しい権限を割り当てます。voidaddUserToGroup(StringSE username, StringSE groupName) ユーザーを特定のグループのメンバーにします。voidchangePassword(StringSE oldPassword, StringSE newPassword) 現在のユーザーのパスワードを変更します。voidcreateGroup(StringSE groupName, ListSE<GrantedAuthority> authorities) 指定された権限のリストを使用して新しいグループを作成します。protected AuthenticationcreateNewAuthentication(Authentication currentAuth, StringSE newPassword) voidcreateUser(UserDetails user) 指定された詳細で新しいユーザーを作成します。voiddeleteGroup(StringSE groupName) すべてのメンバーと権限を含むグループを削除します。voiddeleteUser(StringSE username) 指定されたログイン名を持つユーザーをシステムから削除します。このグループマネージャーが制御するすべてのグループの名前を返します。findGroupAuthorities(StringSE groupName) グループに割り当てられているオーソリティのリストを取得します。findUsersInGroup(StringSE groupName) グループのメンバーであるユーザーを見つけますprotected voidinitDao()protected ListSE<UserDetails>loadUsersByUsername(StringSE username) SQL usersByUsernameQuery を実行し、UserDetails オブジェクトのリストを返します。voidremoveGroupAuthority(StringSE groupName, GrantedAuthority authority) グループに割り当てられた権限から権限を削除しますvoidremoveUserFromGroup(StringSE username, StringSE groupName) グループのユーザーのメンバーシップを削除します。voidrenameGroup(StringSE oldName, StringSE newName) 割り当てられた権限またはメンバーを変更せずにグループの名前を変更します。voidsetAuthenticationManager(AuthenticationManager authenticationManager) voidsetChangePasswordSql(StringSE changePasswordSql) voidsetCreateAuthoritySql(StringSE createAuthoritySql) voidsetCreateUserSql(StringSE createUserSql) voidsetDeleteGroupAuthoritiesSql(StringSE deleteGroupAuthoritiesSql) voidsetDeleteGroupAuthoritySql(StringSE deleteGroupAuthoritySql) voidsetDeleteGroupMemberSql(StringSE deleteGroupMemberSql) voidsetDeleteGroupMembersSql(StringSE deleteGroupMembersSql) voidsetDeleteGroupSql(StringSE deleteGroupSql) voidsetDeleteUserAuthoritiesSql(StringSE deleteUserAuthoritiesSql) voidsetDeleteUserSql(StringSE deleteUserSql) voidsetFindAllGroupsSql(StringSE findAllGroupsSql) voidsetFindGroupIdSql(StringSE findGroupIdSql) voidsetFindUsersInGroupSql(StringSE findUsersInGroupSql) voidsetGrantedAuthorityMapper(org.springframework.jdbc.core.RowMapper<GrantedAuthority> mapper) RowMapperを設定して、各権限結果行をGrantedAuthorityオブジェクトに変換します。voidsetGroupAuthoritiesSql(StringSE groupAuthoritiesSql) voidsetInsertGroupAuthoritySql(StringSE insertGroupAuthoritySql) voidsetInsertGroupMemberSql(StringSE insertGroupMemberSql) voidsetInsertGroupSql(StringSE insertGroupSql) voidsetRenameGroupSql(StringSE renameGroupSql) voidsetSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。voidsetUpdateUserSql(StringSE updateUserSql) voidsetUserCache(UserCache userCache) オプションで、UserCache がアプリケーションで使用されている場合は設定します。voidsetUserDetailsMapper(org.springframework.jdbc.core.RowMapper<UserDetails> mapper) RowMapperを設定して、各ユーザー結果行をUserDetailsオブジェクトに変換します。voidsetUserExistsSql(StringSE userExistsSql) voidupdateUser(UserDetails user) 指定されたユーザーを更新します。booleanuserExists(StringSE 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クラス org.springframework.dao.support.DaoSupport から継承されたメソッド
afterPropertiesSetクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.security.core.userdetails.UserDetailsService から継承されたメソッド
loadUserByUsername
フィールドの詳細
DEF_CREATE_USER_SQL
- 関連事項:
DEF_DELETE_USER_SQL
- 関連事項:
DEF_UPDATE_USER_SQL
- 関連事項:
DEF_INSERT_AUTHORITY_SQL
- 関連事項:
DEF_DELETE_USER_AUTHORITIES_SQL
- 関連事項:
DEF_USER_EXISTS_SQL
- 関連事項:
DEF_CHANGE_PASSWORD_SQL
- 関連事項:
DEF_FIND_GROUPS_SQL
- 関連事項:
DEF_FIND_USERS_IN_GROUP_SQL
- 関連事項:
DEF_INSERT_GROUP_SQL
- 関連事項:
DEF_FIND_GROUP_ID_SQL
- 関連事項:
DEF_INSERT_GROUP_AUTHORITY_SQL
- 関連事項:
DEF_DELETE_GROUP_SQL
- 関連事項:
DEF_DELETE_GROUP_AUTHORITIES_SQL
- 関連事項:
DEF_DELETE_GROUP_MEMBERS_SQL
- 関連事項:
DEF_RENAME_GROUP_SQL
- 関連事項:
DEF_INSERT_GROUP_MEMBER_SQL
- 関連事項:
DEF_DELETE_GROUP_MEMBER_SQL
- 関連事項:
DEF_GROUP_AUTHORITIES_QUERY_SQL
- 関連事項:
DEF_DELETE_GROUP_AUTHORITY_SQL
- 関連事項:
logger
protected final org.apache.commons.logging.Log logger
コンストラクターの詳細
JdbcUserDetailsManager
public JdbcUserDetailsManager()JdbcUserDetailsManager
メソッドの詳細
setUserDetailsMapper
RowMapperを設定して、各ユーザー結果行をUserDetailsオブジェクトに変換します。デフォルトのマッパーは、"username"、"password"、"'enabled' " などの名前を持つ列を想定し、対応する UserDetails プロパティに直接マッピングします。- パラメーター:
mapper- データベース内の行をマッピングするために使用するRowMapper。null であってはなりません- 導入:
- 6.5
setGrantedAuthorityMapper
public void setGrantedAuthorityMapper(org.springframework.jdbc.core.RowMapper<GrantedAuthority> mapper) RowMapperを設定して、各権限結果行をGrantedAuthorityオブジェクトに変換します。デフォルトのマッパーは、"authority" や "role" といった名前の列を想定し、SimpleGrantedAuthority オブジェクトに直接マッピングします。- パラメーター:
mapper- データベース内の行を GrantedAuthority オブジェクトにマッピングするために使用するRowMapperは null であってはなりません- 導入:
- 6.5
initDao
protected void initDao() throws org.springframework.context.ApplicationContextException- オーバーライド:
- クラス
JdbcDaoImplのinitDao - 例外:
org.springframework.context.ApplicationContextException
loadUsersByUsername
SQL usersByUsernameQuery を実行し、UserDetails オブジェクトのリストを返します。通常、一致するユーザーは 1 人だけです。- オーバーライド:
- クラス
JdbcDaoImplのloadUsersByUsername
createUser
インターフェースからコピーされた説明:UserDetailsManager指定された詳細で新しいユーザーを作成します。- 次で指定:
- インターフェース
UserDetailsManagerのcreateUser
updateUser
インターフェースからコピーされた説明:UserDetailsManager指定されたユーザーを更新します。- 次で指定:
- インターフェース
UserDetailsManagerのupdateUser
deleteUser
インターフェースからコピーされた説明:UserDetailsManager指定されたログイン名を持つユーザーをシステムから削除します。- 次で指定:
- インターフェース
UserDetailsManagerのdeleteUser
changePassword
public void changePassword(StringSE oldPassword, StringSE newPassword) throws AuthenticationException インターフェースからコピーされた説明:UserDetailsManager現在のユーザーのパスワードを変更します。これにより、永続的なユーザーリポジトリ (データベース、LDAP など) 内のユーザーのパスワードが変更されます。- 次で指定:
- インターフェース
UserDetailsManagerのchangePassword - パラメーター:
oldPassword- 現在のパスワード (必要に応じて再認証する)newPassword- 変更するパスワード- 例外:
AuthenticationException
createNewAuthentication
userExists
インターフェースからコピーされた説明:UserDetailsManager指定されたログイン名を持つユーザーがシステムに存在するかどうかを確認します。- 次で指定:
- インターフェース
UserDetailsManagerのuserExists
findAllGroups
インターフェースからコピーされた説明:GroupManagerこのグループマネージャーが制御するすべてのグループの名前を返します。- 次で指定:
- インターフェース
GroupManagerのfindAllGroups
findUsersInGroup
インターフェースからコピーされた説明:GroupManagerグループのメンバーであるユーザーを見つけます- 次で指定:
- インターフェース
GroupManagerのfindUsersInGroup - パラメーター:
groupName- メンバーが必要なグループ- 戻り値:
- グループメンバーのユーザー名
createGroup
インターフェースからコピーされた説明:GroupManager指定された権限のリストを使用して新しいグループを作成します。- 次で指定:
- インターフェース
GroupManagerのcreateGroup - パラメーター:
groupName- 新しいグループの名前authorities- このグループに割り当てられる権限。
deleteGroup
インターフェースからコピーされた説明:GroupManagerすべてのメンバーと権限を含むグループを削除します。- 次で指定:
- インターフェース
GroupManagerのdeleteGroup - パラメーター:
groupName- 削除するグループ。
renameGroup
インターフェースからコピーされた説明:GroupManager割り当てられた権限またはメンバーを変更せずにグループの名前を変更します。- 次で指定:
- インターフェース
GroupManagerのrenameGroup
addUserToGroup
インターフェースからコピーされた説明:GroupManagerユーザーを特定のグループのメンバーにします。- 次で指定:
- インターフェース
GroupManagerのaddUserToGroup - パラメーター:
username- メンバーシップを付与されるユーザー。groupName- ユーザーが追加されるグループの名前。
removeUserFromGroup
インターフェースからコピーされた説明:GroupManagerグループのユーザーのメンバーシップを削除します。- 次で指定:
- インターフェース
GroupManagerのremoveUserFromGroup - パラメーター:
username- ユーザーgroupName- それらを削除するグループ
findGroupAuthorities
インターフェースからコピーされた説明:GroupManagerグループに割り当てられているオーソリティのリストを取得します。- 次で指定:
- インターフェース
GroupManagerのfindGroupAuthorities
removeGroupAuthority
インターフェースからコピーされた説明:GroupManagerグループに割り当てられた権限から権限を削除します- 次で指定:
- インターフェース
GroupManagerのremoveGroupAuthority
addGroupAuthority
インターフェースからコピーされた説明:GroupManagerグループに新しい権限を割り当てます。- 次で指定:
- インターフェース
GroupManagerのaddGroupAuthority
setSecurityContextHolderStrategy
public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。デフォルトのアクションは、SecurityContextHolderに格納されているSecurityContextHolderStrategyを使用することです。- 導入:
- 5.8
setAuthenticationManager
setCreateUserSql
setDeleteUserSql
setUpdateUserSql
setCreateAuthoritySql
setDeleteUserAuthoritiesSql
setUserExistsSql
setChangePasswordSql
setFindAllGroupsSql
setFindUsersInGroupSql
setInsertGroupSql
setFindGroupIdSql
setInsertGroupAuthoritySql
setDeleteGroupSql
setDeleteGroupAuthoritiesSql
setDeleteGroupMembersSql
setRenameGroupSql
setInsertGroupMemberSql
setDeleteGroupMemberSql
setGroupAuthoritiesSql
setDeleteGroupAuthoritySql
setUserCache
オプションで、UserCache がアプリケーションで使用されている場合は設定します。これにより、更新が行われた後にユーザーをキャッシュから削除して、古いデータを回避できます。- パラメーター:
userCache- AuthenticationManager が使用するキャッシュ。