티스토리 뷰
스프링 시큐리티 기초
1. 스프링 시큐리티란 ?
-
스프링 기반의 어플리케이션의 보안(인증과 인가)을 담당하는 프레임워크
-
filter 기반으로 동작하므로 spring MVC와 분리되어 관리 및 동작
2. 스프링 시큐리티 주요 용어
-
Principal(접근 주체): 보호된 대상에 접근하는 유저
-
Authentication(인증): 현재 유저가 누구인지 확인하는 과정
-
Autherize(인가): 인증된 유저가 어떤 서비스 또는 페이지에 접근할 수 있는 권한이 있는지 검사
-
권한: 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되었는지를 결정
스프링 시큐리티 아키텍처 정리
-
브라우저에서 로그인 요청이 서블릿 컨테이너로 들어온다
-
서블릿 필터의 DeligatingFilterProxy 필터가 스프링 빈의 이름을 참조하여 FilterChainProxy로 요청을 인가한다
-
FilterChainProxy에서 설정파일에 해당하는 시큐리티 필터 목록을 가져온 후 순차적으로 실행한다
-
UsernamePasswordAuthenticationFilter에서 인증을 실행하는 AuthenticationManager 인터페이스의 구현체인 ProviderManager이 실행되어 UserDetailService 구현체를 이용하여 인증을 완료 후 Authentication 객체를 SecurityContextHolder에 저장 & 스레드로컬에 저장한다
-
SecurityContextPersistenceFilter에서 세션에 securityContext 저장한다
-
FilterSecurityInterceptor(마지막 필터)에서 AbstractFilterSecurityInterceptor(부모)의 AccessDeicisionManager을 실행하여 권한을 체크한 후 true(1)이 반환되면 요청 페이지로 리다이렉트하여준다
'BackEnd > SpringBoot' 카테고리의 다른 글
[Spring Security] - SpringSecurity+Jwt 로그인 과정 (0) | 2020.10.10 |
---|---|
[Spring] - Filter,Interceptor,AOP의 개념 및 차이 (0) | 2020.10.09 |
[spring] - Request 흐름과 웹서버 WAS 에 대하여 (0) | 2020.08.23 |
[spring] - spring MVC 와 RESTFul 방식의 차이 (0) | 2020.08.23 |
[spring] - Spring Data JPA를 사용한 페이징 처리 (0) | 2020.08.09 |