728x90
반응형
Spring Security 란?
- Spring Security는 스프링 기반의 어플리케이션 보안을 담당하는 프레임워크이다.
- Spring Security를 사용하면 사용자 인증, 권한, 보안처리를 간단하지만 강력하게 구현 할 수 있다.
- Filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 동작한다.
SecurityFilterChain
일반적으로 브라우저가 서버에 데이터를 요청하면 DispatcherServlet에 전달되기 이전에 여러 ServletFilter를 거친다.
이때 Spring Security에서 등록했었던 Filter를 이용해 사용자 보안 관련된 처리를 진행한다.
Spring Security와 관련된 Filter들은 연결된 여러 Filter들로 구성되어있다. 이 때문에 Chain이라는 표현을 사용하고 있다.
Spring Security 동작
- AuthenticationFilter (UsernamePasswordAuthenticationFilter)는 사용자의 요청을 가로챈다. 그리고 인증이 필요한 요청이라면 사용자의 JSESSIONID가 Security Context에 있는지 판단한다. 없으면 로그인 페이지로 이동시킨다.
- AuthenticationManager 인터페이스의 구현체는 ProviderManger이고 AuthencationProvider에게 비밀번호 인증 로직 책임을 넘긴다.
- AuthencationProvider는 UserDetailsService를 실행해 비밀번호 인증 로직을 처리한다.
- 인증 로직이 완료되면 AuthenticationManager는 Authentication를 반환하며, 결과적으로 SecurityContext에 사용자 인증 정보가 저장된다.
- 인증 과정이 끝났으면 AuthenticationFilter에게 인증에 대한 성공 유무를 전달하고
성공하면 AuthenticationSuccessHandler를 호출하고 실패하면 AuthenticationFailureHandler를 호출한다.
참조 :
https://bamdule.tistory.com/52
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] 의존성 주입 방법 (생성자 주입, Field 주입, Setter 주입) (4) | 2022.09.27 |
---|---|
[Spring] IoC(Inversion of Control) 제어의 역전 (0) | 2022.09.26 |
[Spring] @SuppressWarnings 어노테이션 (0) | 2022.09.26 |
[Spring] DL(Dependency Lookup) 의존성 검색 (0) | 2022.09.25 |
[Spring] DI (Dependency Injection) 의존성 주입 (0) | 2022.09.24 |