クラス 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) 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 がアプリケーションで使用されている場合は設定します。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
方法の詳細
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 が使用するキャッシュ。