Spring Security
I. SpringSecurity
SpringSecurity
는 *Filter 기반으로 동작한다. Interceptor
와 달리 Filter
는 애초에 SpringContext 밖에서 동작하기 때문에, Spring MVC와 별개이다. Spring에 주어진 요청이 처리되는 순서를 간단하게 표현하면 다음과 같다.
flowchart LR
request[Request]
filter{Filter}
dispatcherServlet[DispatcherServlet]
interceptor{Interceptor}
controller[Controller]
request-->filter-->dispatcherServlet-->interceptor-->controller
(그림 I-1) Spring request handling
DispatcherServlet
의 동작 전에 복수의 필터가 동작하며, SpringSecurity
의 핵심은 DispatcherServlet
에 요청이 도달하기 전 원치않는 접근을 차단하거나, SpringContext에서 공통적으로 사용될 데이터를 추출하는 데 있다.
*Filter
: J2EE 표준 스펙 기능으로,DispatcherServlet
에 요청에 전달되기 전 url 패턴에 맞는 부가작업을 처리하는 기능을 제공한다.
II. SecurityFilterChain
flowchart LR
%% HttpSecurity{HttpSecurity}
%% SecurityFilterChain[SecurityFilterChain]
%%
%% HttpSecurity->SecurityFilterChain
SpringSecurity
는 다양한 기능을 가진 필터들을 제공한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.