こんにちは。
田中です。
今回はSpring Bootのセッション管理についてです。
とはいえ、先達がすでにいくつか記載されている記事は多数あるので、ここではバージョン6.2.2でこう書けば動いたという話をします。
【バージョン】
Spring Security 6.2.2
Spring Security 5.4以降記載方法が大幅に変わったというSpring Security。
ただ、私自身はこれを意識して使ったのはつい最近のことなので、これより前のバージョンで使用したことはないが、大きく変更されたらしい。
詳しくは下記サイトを参照。
下記のサイトを参照させてもらいました。
設定方法とかもありますが、Javaを含むEclipseを使用していたので、Spring Securityもすでに設定済みの状態だったので省略。
問題は、Java部分の設定ファイルだ。
下記は、1ユーザにつき持てるセッションは1つ、という設定を付与するもの。
サイトの方法は下記の方法。
http.authorizeRequests()
(省略)
.sessionManagement().maximumSessions(1);
ところが、バージョン6.2.2ではこの記載方法はできなかった。
なので、下記のように修正。
http.authorizeHttpRequests(
.sessionManagement(
(sessionManagement) -> sessionManagement.maximumSessions(1)
)
6.2.2では、このように記載すれば動きました。
sessionManagement以外にも、exceptionHandlingといったほかの関数(?)も同様の形で記載が可能。
Eclipseの関数の説明書きからこの状態へたどり着いた。
開発ツールなしだったら、ここまで来るのは難しかったかもしれない。
今回は備忘録というほどでもないが、メモ程度に覚えておこうと思う内容でした。