Security Principal | 主体のことでセキュリティ文脈においては認証ユーザー |
Authentication | 認証 |
Authorization or Access Control | 認可 |
UserDietailService | ユーザーの検索とPW認証を行うクラス |
ProviderManagerを利用するとfilterのように多彩な認証方式に対応できる。
attemptAuthenticationでユーザー情報をRequestやReponseからセットするが、実は認証はAuthenticationManagerに移譲しており、ここでは認証していないという。prepareAuthenticationが正しいメソッド名。
OAuth2の認証
一番シンプルにフォームのID/PWで認証する形式。UsernamePasswordAuthenticationTokenにID/PWを格納してAuthenticationManagerに処理は移譲する。
AbstractAuthenticationTokenのサブクラスの一つUsernamePasswordAuthenticationTokenで、このTokenのタイプごとに認証方式を切り替えることができる。
Cookieにより長期間ログインをさせたい場合に使うfilter
http://www.ne.jp/asahi/hishidama/home/tech/java/spring/boot/web/basic-auth.html
割と古いがシンプル。ただしslake
https://qiita.com/literalice/items/face0a467f1477348e6b
こちらの方が2.0系でgithub
https://qiita.com/yoshikawaa/items/5bc6cabbc2e5815f011c
OAuth2.0で必要な固有接続情報はclient-idとsecretのみ。あとはサイトで一定。
認証のフローとカスタマイズ
https://www.memory-lovers.blog/entry/2018/01/10/013508
ユーザーはuserでパスワードはコンソール起動時に毎回変わるので実用性はない!
Using generated security password: 54847ad0-58da-4aa8-bb2b-40b4211e81ad