SpringBoot2.2、gradleでセッションをredisで管理する
date: 2020-03-27
SpringSecurityでの認証を実装していることを前提とする。
redisを導入しておく
dockerでredisを入れる
docker-compose.yml
version: "3.3"
services:
redis:
image: "redis:latest"
ports:
- "6379:6379"
volumes:
- "./data/reis:/data"
redisを起動する
docker-compose up
これでlocalhost:6379でredisにアクセス可能
springbootにredis導入
springbootのセッションでredisを使うには、
- spring-boot-starter-data-redis
- spring-session-data-redis
を入れる必要があるらしい。
MVNRepositoryで検索してみる
[https://mvnrepository.com/search?q=spring-boot-starter-data-redis] [https://mvnrepository.com/search?q=Spring+Session+Data+Redis+]
build.gradleに以下記述
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-redis:2.2.6.RELEASE'
implementation 'org.springframework.session:spring-session-data-redis:2.2.2.RELEASE'
}
application.ymlに認証情報等記述
spring:
redis:
host: localhost
port: 6379
database: 0
password: null
これで自分のアプリーケーションにログインすると、セッション情報がredisに書き込まれているのがわかる。 アプリケーションを再起動しても、redisにセッションが書き込まれているためログイン状態が保持される。
redisに入ってみてみる
$ redis-cli
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *
これでセッションが確認できる。
date: 2020-03-27