Spring Sessionの使い方と有効期限を設定する1番簡単な方法




セッションの設定方法

Spring Bootでセッション管理する場合Spring Sessionを使うかと思います。デフォルトではセッションの有効期限が30分しかありません。

一番簡単な設定は下記です。

@EnableRedisHttpSessionの引数のmaxInactiveIntervalInSecondsに設定したい秒数を設定するだけです。

サンプルコードでは86400秒を設定して24時間セッションがきれないようにしています。

package com.sample.config

import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory
import org.springframework.session.data.redis.config.ConfigureRedisAction
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession

@Configuration
@ConfigurationProperties(prefix = "spring.datasource.redis")
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400)
class HttpSessionConfig {

    var host: String = ""

    var port: Int = 0

    @Bean
    fun connectionFactory(): JedisConnectionFactory {
        val factory = JedisConnectionFactory()
        factory.hostName = host
        factory.port = port
        return factory
    }

    @Bean
    fun configureRedisAction(): ConfigureRedisAction {
        return ConfigureRedisAction.NO_OP;
    }
}

ちなみにconfigureRedisAction()メソッドはElasticacheのRedisを使う時には定義しないといけないメソッドです。

関連記事:Spring SessionでElastiCache for Redisを使う場合はConfigコマンドを実行しないようにする

おすすめ書籍

JPAに関して体系的に学べる良い書籍だと思います。良くあるSpring系書籍ですとJPAは少ししか紹介がありませんが丸々一冊JPAに関してなので詳細な解説がされています。内容はJPAと他のORMとの比較から始まりセットアップ、実装の仕方まで幅広く網羅されています。これからJPAで開発を初めてみようかなと考えている方は一読することをオススメします!

Springの概要からインストール方法、各コア機能(Security, Sessionなど)の解説が体系的にまとめられています。2018年に出版されたばかりなので情報も新しいです。これからSpring Bootでアプリケーション開発をしたい方の最初に読む一冊としておすすめします。対象は初心者だけでなく上級者まで幅広く学べるので是非読んでみてください!

 

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です