AuthenticationManager
Authentication
에서 역할, 범위 등 보안 주체에게 부여되는 권한
Spring Security 인증 모델의 핵심
설정 SecurityContextHolder
SecurityContext context = SecurityContextHolder.createEmptyContext();
Authentication authentication =
new TestingAuthenticationToken("username", "password", "ROLE_USER");
context.setAuthentication(authentication);
SecurityContextHolder.setContext(context);
현재 인증된 사용자 액세스
SecurityContext context = SecurityContextHolder.getContext();
Authentication authentication = context.getAuthentication();
String username = authentication.getName();
Object principal = authentication.getPrincipal();
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
Authentication
Authentication.getAuthorities()
메서드에서 인스턴스를 가져올 수 있습니다.
이러한권한 역할은 나중에 웹 권한 부여, 메소드 권한 부여 및 도메인 오브젝트 권한 부여를 위해 구성됩니다.
AuthenticationManager
는 Spring Security의 필터가 인증을 수행하는 방법을 정의하는 API입니다. 직접 설정할 수 있으며 AuthenticationManager
구현은 무엇이든 될 수 있지만 가장 일반적인 구현은 ProviderManager
입니다.
ProviderManager
는 가장 일반적으로 사용되는 구현입니다.
AuthenticationProvider
인스턴스에 위임합니다. 각각의 인증이 성공 또는 실패해야 함을 나타내거나 결정을 내릴 수 없음을 나타내고 다운스트림이 결정할 수 있도록 할 수 있습니다.
인증이 수행될 수 없는 경우 참조되는 부모를 선택할 수 있습니다. 여러 인스턴스가 동일한 부모를 공유할 수 있습니다. 이는 공통된 인증이 있지만 서로 다른 인증 메커니즘이 있는 여러 SecurityFilterChain
인스턴스가 있는 시나리오에서 다소 일반적입니다.