본문 바로가기
Spring/Spring Security

[Spring Security] Spring Session JDBC

by 제우제우 2024. 9. 2.

Spring Session JDBC란?

Spring Session JDBC는 Spring 애플리케이션에서 세션 관리를 데이터베이스를 이용해 수행할 수 있도록 지원하는 라이브러리이다. 

기본적으로 HTTP 세션은 서버의 메모리에 저장되지만, Spring Session JDBC를 사용하면 세션을 데이터베이스에 저장하여 여러 가지 이점을 얻을 수 있다. 

 

Spring Session JDBC 의존성 추가 

// 스프링 Session JDBC
implementation 'org.springframework.session:spring-session-jdbc'

 

Spring Session 동작 확인 

현재 나는 application.yaml 설정 파일에 h2 데이터베이스 관련 설정을 해두었다. 

 

이렇게 세션 관련 테이블이 자동으로 생성되어 있는 걸 확인할 수 있다. 

 

Spring Session JDBC의 공식 문서에서는 Spring Session이 사용하는 테이블 생성에 필요한 SQL 스크립트를 제공한다. 

https://docs.spring.io/spring-session/reference/configuration/jdbc.html

 

JDBC :: Spring Session

At times, it is useful to be able to customize the SQL queries executed by Spring Session JDBC. There are scenarios where there may be concurrent modifications to the session or its attributes in the database, for example, a request might want to insert an

docs.spring.io

 

로그인 결과 

 

세션 만료일, 세션 생성 시간, 최근 접속 시간 등.. 여러 가지 정보가 데이터베이스에 저장되는 걸 확인할 수 있다. 

 

세션 만료시간 변경(1800 3600(1시간)) 

spring:
  session:
    timeout: 3600

 

쿠키 만료시간 변경

server:
  servlet:
    session:
      cookie:
        max-age: 3600