20220502メモ
※現時点では写経Onlyなので基本記事見て作成しましょう。
要素
UserDetails、UserDetailsServiceの実装クラス
GrantedAuthority
JdbcTemplate
queryForMap
SimpleGrantedAuthority
UsernameNotFoundExceptionからBadCredentialsException への変換
認証例外情報の隠蔽
DaoAuthenticationProvider
ritrieveUser
LoadByUsername
DataAccessException
@NotBlank…任意の文字と全角空白のみ入力可能で、Null空文字半角空白は不可。
securityContext
Authentication
AnonymousAuthenticationToken
流れ
1.spring securityの導入
プロジェクト作成時にspring securityのチェックボックスにチェックを入れるか、
pom.xmlにspring securityの記述。
2.以降やること↓
・dbへのdatabase登録とユーザ情報登録とgrantで認証設定(記事見て)
application.propertiesと情報合わせる&spring securityの記述。
パスワードはハッシュ化の必要あり。Eclipse上でシスアウトしてハッシュ値表示。
・各クラスの実装。Config、UserDetails、UserDetailsService。
・messages.propertiesはMavenフォルダ内のspring-security-conf?内のものコピると楽。
・application.propertiesで指定した以下のsqlファイルには、
schema-locationでTable定義を、
data-locationでデータ定義を行う。
発生した問題(解決済)
1.認証可能ユーザーでログインした際に、エラーメッセージ画面に遷移
原因は静的リソースへのリクエストが失敗したため
→cssフォルダが存在しないのに参照しようとしていた
→cssフォルダ作成で解決
2.実行の際に接続エラーが発生
原因はコマンドプロンプトで設定したユーザ情報とapplication.propertiesに記述したユーザ情報の不一致。
→新たなユーザ情報をコマンドプロンプトにて作成し、application.propertiesに記述のユーザ情報と一致させる。
→代替案:コマンドプロンプトにてユーザ情報を変更する。application.propertiesを修正が発生しないため、効率アップ。
3.Beanがサイクルしてしまう
原因はどのBeanを使えばよいかEclipseが判断できないため(?)
Bean同士の循環参照が禁止となったらしい。
起動時にBeanCurrentlyInCreationException発生。
→spring.main.allow-circular-referencesをtrueで記述