스프링 시큐리티 구조의 처리 과정을 간단히 설명하면 다음과 같다.
1. 사용자가 로그인 정보와 함께 인증 요청을 한다.(Http Request)
2. AuthenticationFilter가 요청을 가로채고, 가로챈 정보를 통해 UsernamePasswordAuthenticationToken의 인증용 객체를 생성한다.
3. AuthenticationManager의 구현체인 ProviderManager에게 생성한 UsernamePasswordToken 객체를 전달한다.
4. AuthenticationManager는 등록된 AuthenticationProvider(들)을 조회하여 인증을 요구한다.
5. 실제 DB에서 사용자 인증정보를 가져오는 UserDetailsService에 사용자 정보를 넘겨준다.
6. 넘겨받은 사용자 정보를 통해 DB에서 찾은 사용자 정보인 UserDetails 객체를 만든다.
7. AuthenticationProvider(들)은 UserDetails를 넘겨받고 사용자 정보를 비교한다.
8. 인증이 완료되면 권한 등의 사용자 정보를 담은 Authentication 객체를 반환한다.
9. 다시 최초의 AuthenticationFilter에 Authentication 객체가 반환된다.
10. Authenticaton 객체를 SecurityContext에 저장한다.
'코딩조각' 카테고리의 다른 글
[spring]DAO, DTO, VO 란? (0) | 2023.01.13 |
---|---|
[oracle] oracle SQL 유용한 문자함수 숫자함수 (0) | 2023.01.02 |
Index 의 Cluster Index와 Non-Cluster Index를 구분하는 가장 쉬운 방법 (0) | 2022.12.10 |
STOMP란? pub/sub 이란? (0) | 2022.11.27 |
[java] IoC란? DI란? 객체지향 프로그래밍이란?(정리) (0) | 2022.11.24 |