SPRING

[SPRING] Spring Security + JWT 인증 예외 처리 흐름

도원좀비 2025. 4. 1. 19:19

✅ 예외 처리 분류 기준

Spring Security + JWT 구조에서는 예외가 발생하는 지점이 다양
크게 3가지 책임으로 나눠보면 다음과 같습니다:

구분 예외 발생 위치  처리 주체 예시 상황
인증 필터 예외 JwtAuthenticationFilter 우리가 만든 handleException() 토큰 만료, 서명 오류 등
시큐리티 레벨 예외 Spring Security 내부 AuthenticationEntryPoint, AccessDeniedHandler 인증 안됨, 권한 없음
애플리케이션 예외 Controller / Service @ControllerAdvice 비즈니스 로직 실패,
@Valid 실패 등

🔄 전체 예외 흐름도

[클라이언트 요청]
       │
       ▼
[JwtAuthenticationFilter]   ← (토큰 검증 및 인증 처리)
   ├─ 토큰 없음
   │    └─ 필터 통과 → Spring Security로 넘어감
   │         └─ AuthenticationEntryPoint → 401 응답 (AUTH_006)
   │
   ├─ 토큰 유효
   │    └─ 인증 성공 → SecurityContext 등록 → 컨트롤러 진입
   │
   └─ 토큰 유효하지 않음
        ├─ 만료 → 401 응답 (AUTH_007)
        ├─ 서명 오류 → 401 응답 (AUTH_008)
        └─ 기타 → 401 응답 (AUTH_006)

[컨트롤러 진입]
   ├─ 인증된 사용자지만 권한 없음 → AccessDeniedHandler → 403 (AUTH_005)
   ├─ 로그인 ID 없음, 비밀번호 불일치 등 → CustomException → GlobalExceptionHandler
   └─ @Valid 실패 등 → MethodArgumentNotValidException → GlobalExceptionHandler

🎯 스프링 시큐리티 계층 구조(암기!!)

'SPRING' 카테고리의 다른 글

[Spring] 인덱싱  (0) 2025.04.09
[Spring] N+1  (1) 2025.04.09
[SPRING] JWT  (2) 2025.04.01
[SPRING] JPAQueryFactory  (0) 2025.03.30
[SPRING] QueryDSL  (1) 2025.03.30