새소식

반응형
Java/Spring

SecurityContext, SecurityContextHolder

  • -
반응형

Spring Security 5 버전에서 6 버전으로 바뀌면서 변경된 내용중 SecurityContextHolder 에 관한 내용이 있어

공부하게 되었다.

 

SecurityContext

사용자 인증 정보를 저장하고 있는 Authentication 객체를 저장하는 보관소이다.

SecurityContextHolder 전략(Strategy)에 따라 SecurityContext 에 저장하는 방식이 다르며

일반적으로 ThreadLocal 에 저장한다.

Authentication 인증 객체를 한 쓰레드에서 공유하므로 언제든지 불러와 사용할 수 있다.

 

 

 

SecurityContextHolder

SecurityContext 를 관리하고 저장하는 객체이다.

SecurityContext 저장을 위해 ThreadLocal 를 가지고 있다.

SecurityContext 저장 방식(Strategy, 전략)을 지정한다.

 

  • MODE_TRHEADLOCAL : 한 쓰레드에 한개의 SecurityContext 를 할당한다. 기본값이다.
  • MODE_INHERITABLETRHEADLOCAL : 메인, 자식 쓰레드에서 동일한 SecurityContext 사용
  • MODEL_GLOBAL : 한 어플리케이션에서 한개의 SecurityContext 사용한다.

 

SecurityContextHolder 의 clearContext() 메서드를 통해 SecurityContext 를 초기화한다.

 

 

stragtegy 는 SecurityContextHolderStragegy 인터페이스이며, 기본적으로 

ThreadLocalSecurityContextHolderStrategy 클래스를 사용한다.

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.