SecurityContextHolder2 SecurityContext 와 Authentication 내부 속으로 이전 포스팅에서는 SecurityContext를 가지고 있는 SecurityContextHolder 내부를 살펴보았다. 이번에는 SecurityContext와 Authentication의 내부를 살펴보자. # SecurityContext javadoc에 설명된 내용을 해석해보자. 현재 실행 중인 쓰레드와 연관된 최소한의 보안 정보를 정의하는 인터페이스이다. SecurityContext는 SecurityContextHolder에 저장된다. SecurityContext를 구현한 구현체는 SecurityContextImpl 하나밖에 없다. (SecurityContextImpl 내부를 보면 Authentication을 가지고 있는 것 외에는 크게 중요한 게 없다.) 다음으로 Authentication 내부를 살.. 2021. 5. 17. SecurityContextHolder의 내부를 파헤쳐보자 인프런 백선장님의 강의를 보면서 내부가 좀 더 궁금해졌다. # SecurityContextHolder란 ? 우선 강의에서 설명해주시는 정의는 다음과 같다. 1. 인증된 사용자 정보인 `Principal`을 `Authentication`에서 관리하고 `Authentication`을 `SecurityContext`가 관리하고 `SecurityContext`는 `SecurityContextHolder`가 관리한다. 2. 기본적으로 ThreadLocal을 사용한다. ThreadLocal : 한 쓰레드 내에서 사용하는 공용 저장소 즉 ThreadLocal을 사용해서 `Authentication`을 한 쓰레드 내에서 공유가 가능하다. 쓰레드가 달라지면 제대로 된 인증 정보를 가져올 수 없다. 즉 SecurityCo.. 2021. 5. 14. 이전 1 다음