yuusuke-roughの日記

Java,SpringBoot,趣味等

logout処理に悩んだ話 in Spring Security

はじめに

Spring Security にてログアウト処理を行うときは下記のようにlogout()を設定するだけでよかった。

ログアウトの処理 :: Spring Security - リファレンス

 

今回は何かしらの処理をした後にログアウトするという実装。

 

ハマッタ事

上記のログアウト処理は、POSTでログアウトのUrlにリクエストを送って処理される。

なので、コントローラ内で何かしらの処理をした後にPOSTでリダイレクトする事はできないのでハマったという次第。

 

解決?

HttpServletRequst内にてlogout()がある。

 

サーブレット API の統合 :: Spring Security - リファレンス

通常、これは、SecurityContextHolder がクリアされ、HttpSession が無効化され、「自分を記憶」認証がクリーンアップされることを意味します

 

また、CookieのRemember-Meについては別途、削除した。

Spring-Boot で Cookie の付与・取得・削除 - Qiita

 

疑問点

・HttpSessionとRemeber-Meの削除だけでいいのだろうか?

・Spring SecurityではGETによるLogoutはできないのか

・リダイレクトでログアウトする方法はないのか?