Spring Security Architecture - SecurityContextHolder

Jae·2024년 8월 4일

SecurityContext

  • Authentication가 저장되는 저장소

SecurityContextHolder

  • 세션에는 SecurityContext가 있고 SecurityContext는 SecurityContextHolder하위에 있다.
  • SecurityContextHolder는 ThreadLocal(각각의 스레드별로 별도의 저장 공간을 제공하는 컨테이너)을 사용하여 인증 전반에 걸쳐 인증 객체를 전달한다.
  • 따라서 multiThread 등에서는 사용하기 어려운 부분도 있기 때문에 예외처리시 주의해서 사용해줘야한다.
  • 인증된 사용자의 구체적인 정보를 저장한다.
  • strategy
    • MODE_THREADLOCAL : 기본 설정
    • MODE_INHERITABLETHREADLOCAL : 자식쓰레드와 메인 쓰레드간의 SecurityContext를 공유하여 사용하고 싶을 때.
    • MODE_GLOBAL : 애플리케이션의 모든 Thread가 단 하나의 SecurityContext만을 공유하고 싶은 경우.

후기

필터부터 내용을 추가해야겠다.

0개의 댓글