![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Q8YZY/btqygtDaZ0G/79WlXN9Sx4n83gsO08uavK/img.png)
Spring Security - ArcheTecher_Authenticaition SecurityContextHolder AuthenticationManager가 인증을 마친뒤 리턴받은 Authentication 객체가 언제 SecurityContextHolder로 저장되는지 살펴보자. 크게 두가지 필터가 사용된다. UsernamePasswordAuthenticationFilter SecurityContextPersistenceFilter SecurityContextHolder 인증이 되어있다면 다시 인증을 진행하는것이 아니다. SecurityContextHolder가 인증된 사용자 임을 알고있다. 동일한 Authentication객체가 유지된다. SecurityContextPersistenceFilte..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bcekYX/btqyg9DxWS9/hyEq6kqCDkaeXvnfFx9cP1/img.png)
Spring Security - ArcheTecher_ThreadLocal java.lang 패키지에서 제공하는 Thread Scope Variable 쓰레드 수준의 데이터 저장소이다. SecurityContextHolder의 기본 전략이다. 같은 쓰레드 내에서만 공유 따라서 같은 쓰레드라면 해당 데이터를 메서드 매개변수로 사용하지않아도 데이터를 전달할 수 있다. Context 생성 ThreadLocal을 사용해서 한 쓰레드내에서 Account객체를 공유 할 수 있는 Context를 구현한다. Account 객체를 ThreadLocal에 저장하고, 가져오는 로직만 존재하는 매우 간단한 클래스이다. Context 활용 SampleService의 dashboard() 메서드 수정하기 dashboard() 메..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/sQixv/btqyenwP2st/QqQFASKcF74Itq9Ycivqa1/img.png)
Spring Security - 아키텍쳐 AuthenticationManager Authentication Spring Security에서 인증 (Authenticaiton) 은 AuthenticationManager가 담당한다. AuthenticationManager 인자로 받은 Authentication 객체가 유저에 대한 인증 정보를 담고있다. 해당 인증 정보가 유효하다면 UserDetailsService에서 Return한 객체 [Principal] 을 담고있는 Authentication 객체를 리턴한다. 기본 구현체는 ProviderManager 를 사용한다. 직접 AuthenticationManager를 구현해도 되지만 대부분의 Application에서 기본 구현체 정도에서 해결이 된다. 직접 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bBi5d5/btqyeom0ZK5/P2NWuKEPH89c3YbzbM2oj1/img.png)
Spring Security - ArcheTecher_SecurityContextHolder Authentication SecurityContextHolder Security Context 제공, 기본적으로 ThreadLocal을 사용한다. 기본 전략은 ThreadLocal 기반으로 동작한다. SecurityContextHolder를 통해 SecurityContext에 접근할 수 있다. SecurityContext Authentication을 제공한다. Authentication Spring Security에서 인증을 거치고난 뒤의 사용자의 인증정보를 Principal 이라고 한다. 이러한 Principal을 감싸고 있는 객체이다. Printcipal 외에도 GrantedAuthorities (사용자 권..