본문 바로가기
개발/Spring

Spring Security 구성과 흐름

by 설이주인 2023. 1. 2.

해당 게시글은 Spring Security의 이해를 위해서 작성했다.

 

 

Spring Security INTERNAL FLOW

 

Spring Security Filter : 사용자 측에서 보내는 request들을 확인하여 인증이 필요 여부를 확인한다. 필요하다면 login page로 보내거나 저장 되어있는 정보를 확인한다.

 

Authentication : UsernamePasswordAuthenticationFilter가 http로 부터 username, password를 추출하며 Authentication 타입의 객체를 준비한다.

 

AuthenticationManger : 사용가능한 AuthenticationProviders를 관리하며 책임진다.

 

AuthenticationProvider : 인증 비즈니스 로직들을 구성하는 곳이다. 대표적으로 UserDetailsManager/UserDetailsService, PasswordEncoder를 생각하자.

 

UserDetailsManager/UserDetailsService : DB나 저장소로부터 UserDetails을 create, update, delete, retrive를 도와준다.

 

PasswordEncoder : 암호화 복호화 기능을 지원해 준다.

 

Security Context : request의 인증 절차가 완료되면 해당 인증은 Thread-Local SecurityContextHolder에 의해 관리되는 SecurityContext에 저장된다. 이후 동일한 사용자의 다음 요청에 대해서 도움을 준다.

 

 

 

참고 이미지