윤개발
Spring Security 원리 및 방식 정리 본문
용어 설명
- Authentication(인증) : 사용자가 본인인지 맞는지 확인
- Authorization(권한) : 인증된 사용자가 요청에 접근 가능한지 확인
기본 원리
- Client의 요청은 Filter Chain을 거쳐 처리된다.
- 여러 필터를 지나며 인증이 완료되면 해당요청은 인증된 요청이 된다.
- 모든 필터를 지나며 인증되지 않았다면 인증되지 않은 요청(403)이 된다.
처리 방식
- 요청이 오면 인증을 담당하는 AuthenticationFilter에서 처리한다.
- UsernamePasswordAuthenticationToken을 만들어 AuthenticationManager(인터페이스)에게 위임한다.
- AuthenticationManager를 구현한 ProviderManager는 AuthenricationProvider(interface)를 List로 돌며 인증이 가능한 클래스를 찾는다.
- AuthenricationProvider를 구현한 클래스들 중에 인증이 가능한 클래스가 인증을 담당한다.
- (AuthenricationProvider를 구현한 AbstractUserDetailsAuthenticationProvider 객체를 지원 )
- UserDetailsService에서 User를 조회하여 인증을 진행한다.
- 인증이 완료되면 SecurityContextHolder에 저장된다.
'백엔드 > 스프링' 카테고리의 다른 글
스프링의 컴포넌트 스캔 (0) | 2021.05.10 |
---|---|
웹어플리케이션과 싱글톤 (0) | 2021.05.10 |
Api 정상, 에러 응답 공통 포맷 개발 (0) | 2021.04.28 |
Spring Security 공식 문서 정리 (0) | 2021.04.19 |
스프링 부트 알아보기 (0) | 2019.10.15 |
Comments