- Spring Security 필터 체인의 구조
- 기본 제공 필터들의 역할과 한계
- 커스텀 필터가 필요한 상황을 구체적으로 알기
- 커스텀 필터를 통해 기능을 확장하는 방법의 개요
- 실무에서 커스텀 필터가 어떻게 활용되는가
커스텀 필터의 필요성
1. 기본 필터의 한계
Security는 다양한 보안 기능을 제공하기 위해 다수의 필터를 기본적으로 제공하고 있다
SecurityFilterChain
- UsernamePasswordAuthenticationFilter
- BasicAuthenticationFilter
- CsrfFilter
- ExceptionTranslationFilter
- .. 기타등등
이러한 필터들은 대부분의 보안 요구사항을 충족한다
하지만, 특정 비즈니스 로직이나 추가적인 보안 정책을 적용하려고 할 때 내장 필터만으로는 한계가 있을 수 있다
- 모든 요청에 대해 추가적인 로깅을 수행하고 싶을 때
- 특정 헤더 값이 반드시 포함되어야 하는 규칙을 적용하고 싶을 때
- 사용자의 IP 주소를 검증하거나 화이트리스트 정책을 적용하고 싶을 때
이럴 때 커스텀 필터가 필요하다
2. 커스텀 필터 활용 사례
(1) 추가 인증 단계 : 기본 ID / Password 인증 이후, 별도의 토큰 검증이나 OTP 인증을 추가할 수 있음
(2) 로깅 및 감사(audit) : 모든 요청과 응답에 대해 로그를 남겨 추적 가능성을 높일 수 있음
(3) 보안 정책 적용 : 특정 국가 IP 차단, User-Agent 기반 접근 제한, 특정 시간대 요청 차단
(4) 성능 / 모니터링 : 요청 처리 시간을 기록하고, 성능 문제를 추적하는데 사용할 수 있음
3. 필터를 통한 기능 확장
Security의 필터는 Servlet Filter 규약을 따른다
따라서 커스텀 필터를 추가하면 기능 확장이 가능함
커스텀 필터는 기본 필터 체인에 앞 / 뒤로 원하는 위치에 삽입할 수 있음
요청과 응답을 가로채어 원하는 로직을 추가할 수 있다
팁
* 커스텀 필터는 남용하면 성능 저하와 복잡도를 유발할 수 있다
* 반드시 필요한 경우에만 도입하는게 좋다
* 보안과 관련된 중요한 정책은 표준 필터로 우선 처리하고, 커스텀 필터는 부가적인 기능에 사용하는 것이 이상적이다
정리
| 항목 | 설명 |
| 기본 필터의 한계 | 특정 비즈니스 / 보안 요구를 충족하지 못할수도 있다 |
| 커스텀 필터의 필요성 | 로깅, 감사, 추가 인증, 보안 정책 강화 등에 필요하다 |
| 활용 사례 | 추가 인증, 로깅 / 감사, 정책 적용, 성능 모니터링 |
| 기능 확장 방식 | 기본 필터 체인 앞 / 뒤에 삽입해서 동작시킨다 |
'Spring Boot > Security' 카테고리의 다른 글
| 커스텀 필터 구현 : 필터체인에 커스텀 필터 추가하기 (0) | 2026.05.01 |
|---|---|
| 커스텀 필터 구현 : 구현 방법 (0) | 2026.05.01 |
| * 인가 아키텍처 : 핵심 컴포넌트 * (0) | 2026.04.29 |
| 인가 아키텍처 : 인가 프로세스 (0) | 2026.04.28 |
| * 인증 아키텍처 : 핵심 컴포넌트 * (0) | 2026.04.24 |