SecurityFilterChain 개요
👉 FilterChainProxy에서 현재 요청의 호출을 위한 Spring Security Filter 요소를 결정하는데 사용
👉 FilterChainProxy에 등록되는 전형적인 Bean의 SecurityFilter

SecurityFilterChain 장점
🙌 !!!주의사항 !!! 🙌
Servlert container나 DelegatingFilterProxy에 직접 등록시 제공된다라는 것을 염두해주자.
☝️모든 Servlet 지원에 시작점 제공
Spring Security의 Serlvet 지원 문제해결에 FilterChainProxy의 디버그 지점을 추가
✌️작업 수행에 필수적
ex1). 메모리 누수 예방으로 SecurityContext를 지운다.
ex2). 어느 공격에 대비한 Spring Security의 HtpFirewall을적용해 응용프로그램 보호.
🤟호출시 유연한 결정 제공.
Sevlet Container의 Filter 요소는 단일 URL 기반으로 호출
반면에 FilterChainProxy는 RequestMatcher interface로 HttpServletRequeset 기반 호출을 결정.

위 도표에서 FilterChainProxy는 어떤 SecurityFilterChain을 사용할 것인지 결정한다.
즉, SecurityFilterChain에서 일치하는 것을 호출하는 것이다.
👉 일치하는 URL 요청에 따른 호출 순서 👈
🚀 Client의 '/api/messages/'의 URL 요청
1️⃣ 처음에 있는 SecurityFilterChain₀의 패턴부터 일치 확인
2️⃣ 일치하면 해당 SecurityFilterChain을 호출
👉 일치하는 URL 요청이 없는 호출 순서 👈
🚀 Client의 '/messages/'의 URL 요청
1️⃣ 처음의 SecurityFilterChain₀의 패턴부터 일치 확인
2️⃣ 어느것도 SecurityFilterChain 요소와 일치하는게 없으면 SercurityFilterChainₙ을 호출
중요한 것은 각각의 SecurityFilterChain은 고유하고 단독적으로 구성되는 점이다.
위 도표의 SecurityFilterChain₀은 3개, SecurityFIlterChainₙ은 4개로 구성되는 것을 보면 된다.
실제로 응용프로그램이 Spring Security의 요청을 무시하려면, SecurityFilterChain이 Security Filter 요소가 없으면 된다.
다음엔 Security FIlter에 대해 알아보자.
Architecture :: Spring Security
The Security Filters are inserted into the FilterChainProxy with the SecurityFilterChain API. Those filters can be used for a number of different purposes, like exploit protection,authentication, authorization, and more. The filters are executed in a speci
docs.spring.io
'IT Study > SpringBoot' 카테고리의 다른 글
| Spring Security 인증 구조 - 2 (0) | 2025.06.28 |
|---|---|
| Servlet 인증 구조 (2) | 2025.06.14 |
| Spring Security(4) (1) | 2025.05.09 |
| Spring Security(3) (0) | 2025.04.26 |
| Spring Security (1) (0) | 2025.03.28 |