📌 문제 상황
Spring Security를 설정했는데
- 로그인은 되는데 페이지 이동이 안 됨
- 로그아웃이 정상적으로 안 됨
- 권한 설정이 적용되지 않음
👉 이런 문제를 겪는 경우가 많다.
📌 원인
이 문제는 대부분
👉 Spring Security 필터 순서를 이해하지 못해서 발생한다
Spring Security는 여러 필터가 체인 형태로 동작하며
👉 순서에 따라 인증/인가 처리가 결정된다
📌 핵심 필터 흐름
1️⃣ 초기 설정 필터
👉 보안 환경 준비 단계
- SecurityContextPersistenceFilter
→ 로그인 정보 불러오기 - HeaderWriterFilter
→ 보안 헤더 추가
👉 요청이 들어오면 가장 먼저 실행된다
2️⃣ 사용자 동작 처리
👉 로그인/로그아웃 관련 처리
- LogoutFilter
→ 로그아웃 요청 처리 - RequestCacheAwareFilter
→ 로그인 후 원래 페이지로 이동
3️⃣ 인증 및 권한 처리 (핵심🔥)
👉 실제로 중요한 단계
- AnonymousAuthenticationFilter
→ 로그인 안 된 사용자 처리 - ExceptionTranslationFilter
→ 인증 실패 시 로그인 페이지 이동 - AuthorizationFilter
→ 최종 권한 체크
❗ 실제 문제 예시
👉 로그인 안 했는데도 페이지 접근됨
원인:
- AnonymousAuthenticationFilter 때문에
👉 “익명 사용자”로 인식됨
👉 로그인 후 이동이 이상함
원인:
- RequestCacheAwareFilter 설정 문제
👉 403 에러 발생
원인:
- AuthorizationFilter에서 권한 없음 판단
🔥 실무에서 중요한 포인트
- 필터 순서가 매우 중요하다
- 인증 → 인가 순서로 동작한다
- 중간 필터 하나만 꼬여도 전체 동작 깨짐
📌 마무리
Spring Security 문제의 대부분은
👉 필터 흐름을 이해하면 해결된다
단순히 필터를 외우는 것보다
👉 “어디서 문제가 발생하는지” 파악하는 것이 핵심이다.
'Spring' 카테고리의 다른 글
| Spring Boot 실행 시 포트 충돌 오류 해결 (Address already in use) (0) | 2026.04.16 |
|---|---|
| [Spring] WebClient (0) | 2026.02.07 |