@)See Also
Spring Session
Spring Session 은
- 사용자의 세션 정보를 관리하기 위한 api 와 implementation 을 제공합니다.
- Clustered Session 지원을 어플리케이션 컨테이너에 의존적이지 않은 쉬운 작업으로 만들어줍니다. (PSA)
- 아래 세가지 항목들에 대한 transparent integration 을 제공합니다.
- HttpSession
HttpSession
을 어플리케이션 컨테이너어 적합한 형태로 변경합니다.- Session ID 를 Http 헤더에 저장하는 것을 지원하여 RESTful API 와 궁합이 좋습니다.
- WebSocket
- 웹소켓 메시지를 전달 받을 때까지
HttpSession
이 살아 있도록 해줍니다. - WebSession
- Spring WebFlux 의
WebSession
을 어플리케이션 컨테이너에 적합한 형태로 변경합니다.
HttpSession Integration
Spring Session 은
HttpSession
과의 trsnsport integration 을 제공합니다.
- 즉, 개발자는
HttpSession
의 구현을 Spring Session 이 지원하는 형태로 변경할 수 있습니다.
Why Spring Session and HttpSession
?
이러한 투명한 통합이 주는 이점이 무엇을까요?
- Clustered Sessions - Clustered Session 지원을 어플리케이션 컨테이너에 의존적이지 않은 쉬운 작업으로 만들어줍니다.
- RESTful APIs - Spring Session 은 세션 id 를 헤더에 제공하게 하여 RESTful API의 동작을 도와줍니다.
SessionRepositoryFilter
세션 저장소 필터 는
- Srping Boot Configuration 에 의해
springSessionRepositoryFilter
라는 이름의 빈으로 등록됨
javax.servlet.http.HttpSession
을 Spring Session이 지원하는 custom implementation 으로 바꾸는 책임을 가짐

SessionRepository
세션 저장소는
- Spring Session 은
@SpringSessionDataSource
를 통해JdbcIndexedSessionRepository
에 주입될 datasource bean 을 explicit 하게 qualify 할 수 있음
Spring Security Integration
Spring Session 은
- Spring Security 의 Remember-me 인증과 통합을 제공합니다.
- 아래의 설정으로 RememberMeServices 를 SpringSessionRemberMeServices 로 변경할 수 있습니다.
Spring Session 은
- Spring Security 의 동시 세션 제어 기능과의 통합을 제공합니다.
- 이를통해 default Spring Security 의 설정과 다른 clustered session 환경을 제공할 수 있습니다.
- 이는 Spring Security 의 SessionRegistry 인터페이스를 SpringSession의 SessionRepository를 활용한 SpringSessionBackedSessionRegistry로 설정하는 것으로 이루어집니다.