Skip to content

[Fix] JWT 인증 및 Refresh Token 보안 보강#18

Merged
Hanharam merged 1 commit into
developfrom
fix/#17-jwt-auth-security
Jul 13, 2026
Merged

[Fix] JWT 인증 및 Refresh Token 보안 보강#18
Hanharam merged 1 commit into
developfrom
fix/#17-jwt-auth-security

Conversation

@Hanharam

Copy link
Copy Markdown
Contributor

체크리스트

  • 병합 대상 브랜치가 올바른지 확인했습니다. (develop 또는 팀에서 합의한 개발 브랜치)
  • PR 제목을 컨벤션에 맞게 작성했습니다. 예: [Feat] 프롬프트 언락 기능 추가
  • 브랜치명을 컨벤션에 맞게 작성했습니다. 예: feat/#2-entity-config-setting
  • 관련 이슈를 연결했습니다.
  • 로컬에서 ./gradlew test 또는 ./gradlew build를 실행했습니다.
  • API 응답에 민감 정보, 토큰, 유료 프롬프트 원문이 노출되지 않는지 확인했습니다.

연관 이슈

작업 내용

  1. JWT 인증 필터를 추가해 보호 API를 AuthenticationPrincipal 기반으로 인증하도록 변경했습니다.
  2. 인증 실패/인가 실패 응답을 JSON 형태로 일관화했습니다.
  3. Access Token과 Refresh Token secret을 분리했습니다.
  4. Refresh Token 세션 저장소와 token family revoke 로직을 추가했습니다.
  5. Refresh Token 세션 테이블 Flyway migration을 추가했습니다.
  6. 기존 X-User-Id 기반 사용자 식별을 제거하고 인증 principal 기반으로 변경했습니다.
  7. 보안 필터/토큰 검증/컨트롤러 인증 흐름 테스트를 보강했습니다.

변경 범위

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

리뷰 중점사항

  • JWT 필터에서 인증 예외를 JSON 응답으로 일관되게 변환하는지 확인해주세요.
  • Refresh Token 재발급 시 DB 세션 검증과 token family revoke 조건이 적절한지 확인해주세요.
  • 사용자 API가 더 이상 외부 입력 헤더로 userId를 신뢰하지 않는지 확인해주세요.
  • JWT_ACCESS_SECRET, JWT_REFRESH_SECRET 운영 환경 설정 누락 가능성을 확인해주세요.

테스트

  • ./gradlew test
  • ./gradlew build
  • 별도 확인:
    • 보안 PR 브랜치(fix/#17-jwt-auth-security) 단독 테스트 통과

스크린샷 / 응답 예시

  • 해당 없음

@Hanharam
Hanharam merged commit bb3e9cc into develop Jul 13, 2026
2 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