一般社団法人 全国個人事業主支援協会

COLUMN コラム

こんにちは。
田中です。

今回はSpring Bootのセッション管理についてです。
とはいえ、先達がすでにいくつか記載されている記事は多数あるので、ここではバージョン6.2.2でこう書けば動いたという話をします。

【バージョン】
Spring Security 6.2.2

バージョンが進むにつれ、記載方法が変わった

Spring Security 5.4以降記載方法が大幅に変わったというSpring Security。
ただ、私自身はこれを意識して使ったのはつい最近のことなので、これより前のバージョンで使用したことはないが、大きく変更されたらしい。
詳しくは下記サイトを参照。

Spring Security 5.4〜6.0でセキュリティ設定の書き方が大幅に変わる件

 

セッションタイムアウトした時の処理

下記のサイトを参照させてもらいました。

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の関数の説明書きからこの状態へたどり着いた。
開発ツールなしだったら、ここまで来るのは難しかったかもしれない。

今回は備忘録というほどでもないが、メモ程度に覚えておこうと思う内容でした。

 

The following two tabs change content below.

tanaka_k1968

最新記事 by tanaka_k1968 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア