본문 바로가기

Spring security

스프링 시큐리티 기본 API 및 Filter 이해 - 세션 제어 필터 : SessionManagementFilter, ConcurrentSessionFilter

인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다.

SessionManagementFilter

SessionManagementFilter는 다음과 같은 기능을 한다.

  1. 세션 관리
    • 인증시 사용자의 세션정보를 등록, 조회, 삭제 등의 세션 이력을 관리
  2. 동시적 세션 제어
    • 동일 계정으로 접속이 허용되는 최대 세션수를 제한
  3. 세션 고정 보호
    • 인증 할 때마다 세션쿠키를 새로 발급하여 공격자의 쿠키 조작을 방지
  4. 세션 생성 정책
    • Always, If_Required, Never, Stateless

ConcurrentSessionFilter

  • 매 요청 마다 현재 사용자의 세션 만료 여부 체크
  • 세션이 만료로 설정되었을 경우 즉시 만료 처리
  • session.iseExpired() == true
    • 로그아웃 처리
    • 즉시 오류 페이지 응답
      • “This session has been expired”

SessionManagementFilter, ConcurrentSessionFilter

  • 최대 세션의 개수는 1로 설정 했다고 가정한다.