LoginSignup
15
20

More than 3 years have passed since last update.

Spring Boot でセッションタイムアウト時間を変更する

Last updated at Posted at 2018-05-23

Spring Boot でセッションタイムアウト時間を変更した話

環境

Spring Boot v1.5.1.RELEASE
および
Spring Boot v2.1.5.RELEASE(2019/7/18 追記)

変更方法

application.properties(または .yml ファイル) を編集する

 以下いずれも、モジュールへの変更無しに変更できるが、セッションを作るとき、またはセッションを破棄するときの処理は書けない。

Spring Boot v2.x より前

Spring Boot v2.x 以降(2019/7/18 追記)

HttpSessionListener を実装する方法

  • HttpSessionListener を実装したクラスを作成
  • セッションを作るとき、セッションを破棄するときに行いたい処理を書ける
  • 単にセッションタイムアウト時間を変更したいときは冗長か
MySessionListener.java
public class MySessionListener implements HttpSessionListener {
  @Override
  public void sessionCreated(HttpSessionEvent se) {
    // タイムアウト時間を設定
    HttpSession session = se.getSession();
    session.setMaxInactiveInterval(1800); // タイムアウト秒数を指定。負の数だとセッションタイムアウトしない

    // セッション生成時の処理
    // ...
  }

  @Override
  public void sessionDestroyed(HttpSessionEvent se) {
    // セッション破棄時の処理
    // ...
  }
WebAppConfig.java
@Configuration
@Import({MySessionListener.class}) // インポートして有効化
public class WebAppConfig {
}
15
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
20