SpringSecurityのRemember Me機能
#Spring #SpringSecurity
Remember Me機能とは
認証成功時に通常のセッション(JSESSIONID)とは別にトークンを発行し、そちらを使って身元確認することで、通常よりも長めにログインできるようにする機能
参考
Spring Security Remember Me
https://www.baeldung.com/spring-security-remember-me
SpringBootでのサンプルが乗ってる
Spring Security 使い方メモ Remember-M
https://qiita.com/opengl-8080/items/7c34053c74448d39e8f5#盗まれたことを検知する仕組み
発行されるトークンのパイロードからアーキテクチャまで書いてある
クラスとカスタマイズするにはどんな感じでやれそうか?
クラス郡はこんな感じになっていそう
https://qiita.com/opengl-8080/items/7c34053c74448d39e8f5#登場するクラス達
他のSecurity系Filterと似ている
RememberMeAuthenticationFilterというFilterが入り口になっているが、実施の処理はRememberMeServicesの実装が行う感じ
この設定は以下のような感じで、rememberMeServicesにRememberMeServicesの実装を登録してやればよさげ
トークンの保存先を変えたい場合は、PersistentTokenRepositoryの実装クラスをtokenRepositoryに設定してやれば良さげ
code: java
and().rememberMe().key("uniqueAndSecret")
// RememberMeServicesの登録
.rememberMeServices(rememberMeServicesImpl)
// PersistentTokenRepositoryの登録
.PersistentTokenRepository(persistentTokenRepositoryImpl)