Skip to content

[Fix] Swagger·로깅과 JWT 보안 설정 통합#19

Merged
Hanharam merged 8 commits into
developfrom
fix/#14-restore-swagger-logging
Jul 13, 2026
Merged

[Fix] Swagger·로깅과 JWT 보안 설정 통합#19
Hanharam merged 8 commits into
developfrom
fix/#14-restore-swagger-logging

Conversation

@Hanharam

Copy link
Copy Markdown
Contributor

체크리스트

  • 병합 대상 브랜치가 올바른지 확인했습니다. (develop)
  • PR 제목을 컨벤션에 맞게 작성했습니다.
  • 브랜치명을 컨벤션에 맞게 작성했습니다. (fix/#14-restore-swagger-logging)
  • 관련 이슈를 연결했습니다.
  • 로컬에서 ./gradlew test를 실행했습니다.
  • API 응답과 로그에 민감 정보, 토큰, 유료 프롬프트 원문이 노출되지 않는지 확인했습니다.

연관 이슈

작업 내용

  1. Swagger/OpenAPI 문서와 요청 MDC·구조화 JSON 로깅을 develop에 복구했습니다.
  2. springdoc-openapi, logstash-logback-encoder, OpenAPI 설정, API 문서 인터페이스와 Swagger 접근 제어 테스트를 통합했습니다.
  3. 기존 MVC Interceptor 요청 로깅을 Security보다 먼저 실행되는 OncePerRequestFilter로 변경했습니다.
  4. JWT 필터 및 Security Handler에서 종료되는 401/403과 Controller 500 응답도 요청 완료 로그로 기록합니다.
  5. JWT 인증 성공 시 사용자 ID와 역할을 MDC에 보강하고, 요청 종료 후 기존 MDC snapshot을 복원해 thread 재사용 시 정보 누수를 막았습니다.
  6. Swagger 비활성화 시 local 테스트 토큰 API가 등록되지 않도록 보완하고, 공통 JWT 환경변수 설정을 유지했습니다.

원인

Swagger PR은 fix/17-jwt-auth-security에 병합됐지만 실제 JWT PR은 이름이 다른 fix/#17-jwt-auth-security에서 squash merge돼, #14 변경이 develop에 포함되지 않았습니다. 이 브랜치는 #17이 반영된 현재 develop을 기반으로 #14 변경만 복구하므로 기존 JWT 보안 보강은 유지됩니다.

변경 범위

  • auth
  • user
  • prompt
  • commerce
  • community
  • moderation
  • tracking
  • admin
  • common
  • global
  • 문서 / 설정 / 배포

리뷰 중점사항

  • 현재 브랜치의 merge-base가 #17이 반영된 develop 커밋 bb3e9cc인지 확인 부탁드립니다.
  • RequestLoggingFilter가 Security보다 먼저 실행되어 401/403/500을 한 번씩 기록하는지 확인 부탁드립니다.
  • Swagger가 기본 비활성화되고 dev/prod 활성화 시 Basic Auth로 보호되는지 확인 부탁드립니다.
  • Authorization 헤더, JWT, password, 요청 본문이 로그에 포함되지 않는지 확인 부탁드립니다.
  • 제외 경로에서 JWT 사용자 MDC가 남지 않고 기존 MDC가 복원되는지 확인 부탁드립니다.

테스트

  • ./gradlew test — 62 tests, 0 failures
  • ./gradlew build
  • Swagger 활성화/비활성화 및 dev/prod Basic Auth 테스트
  • Security 401/403 및 Controller 500 요청 완료 로깅 테스트
  • MDC 복원과 민감정보 미기록 테스트

스크린샷 / 응답 예시

  • 요청 완료 이벤트: http_request_completed
  • 2xx/3xx: INFO
  • 4xx: WARN
  • 5xx: ERROR
  • 주요 필드: requestId, method, path, userId, statusCode, durationMs, exception

@Hanharam
Hanharam marked this pull request as ready for review July 13, 2026 07:34
@Hanharam
Hanharam merged commit ba218ff into develop Jul 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant