Skip to content

[Fix] JWT 인증 필터 및 에외처리 개선 - #33

Merged
jae-2024 merged 2 commits into
mainfrom
Fix/#32/jwt-and-swagger
Feb 2, 2026
Merged

jae-2024 merged 2 commits into
mainfrom
Fix/#32/jwt-and-swagger

Conversation

@jae-2024

@jae-2024 jae-2024 commented Feb 2, 2026

Copy link
Copy Markdown
Contributor

목적

  1. JWT 인증 실패가 500으로 응답되던 문제

1-1. 기존 시도와 실패 원인

  • 기존에 변경한 코드에서 JWT가 없거나 만료된 경우에도 서버에서 다음과 같이 응답
  • 500 Internal Server Error -> 인증 오류를 서버 오류로 잘못 표현됨
  • 때문에 다른 비즈니스 예외와 동일한 방식으로 처리하려했음 -> 실패
  1. Swagger UI에서 API 요청 시 다음 오류가 지속적으로 발생
Failed to fetch.
Possible Reasons:
- CORS
- Network Failure
- URL scheme must be "http" or "https"
  • 서버는 정상적으로 동작
  • API를 Postman으로 호출 시 정상 응답
  • Swagger UI에서만 요청 실패

세부 내용 설명

1-1. 실패 이유 -> JwtTokenFilter는 OncePerRequestFilter로 DispatcherServlet이전 단계에서 실행됨

  • 발생한 예외는 ExceptionHandler의 적용 대상이 아니게됨 따라서 CustomException이 Spring MVC까지 전달되지 않음
  • 결과적으로 모든 예외가 500으로 응답
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid or expired JWT");

이 방식 예외처리로 원상복구
2. Swagger UI에서만 요청이 실패하던 문제

  • Swagger UI는 기본적으로 servers 목록의 첫 번째 항목을 자동으로 선택함
.servers(createServerList()) // 제거
  • 로컬/도커/운영 환경이 혼재된 상황에서 Swagger 기본 동작을 활용하는 것이 더 안전하고 유지보수에 유리하다고 생각
  • Swagger UI가 현재 접속한 주소 기준으로 API 호출하도록 변경

@jae-2024 jae-2024 self-assigned this Feb 2, 2026
@jae-2024 jae-2024 added 🐞BugFix Something isn't working 🔨Refactor 코드 리팩토링 labels Feb 2, 2026
@jae-2024 jae-2024 linked an issue Feb 2, 2026 that may be closed by this pull request
@jae-2024
jae-2024 merged commit 6ddf97d into main Feb 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐞BugFix Something isn't working 🔨Refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] JWT 인증 필터와 예외처리 개선

1 participant