Skip to content

Conversation

@dungbik
Copy link
Contributor

@dungbik dungbik commented Nov 27, 2025

📝 변경 내용


✅ 체크리스트

  • 코드가 정상적으로 동작함
  • 테스트 코드 통과함
  • 문서(README 등)를 최신화함
  • 코드 스타일 가이드 준수

💬 기타 참고 사항

Summary by CodeRabbit

릴리즈 노트

  • Refactor
    • 인증 토큰 관리 방식을 변경하여 보안 강화
    • 토큰 저장 및 전송 메커니즘 개선
    • API 응답 구조 최적화

✏️ Tip: You can customize this high-level summary in your review settings.

@dungbik dungbik self-assigned this Nov 27, 2025
@dungbik dungbik added the enhancement New feature or request label Nov 27, 2025
@dungbik dungbik merged commit ce4fc08 into develop Nov 27, 2025
2 of 3 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Nov 27, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

인증 시스템의 토큰 전달 방식을 HTTP 응답 본문에서 쿠키 기반 방식으로 변경합니다. AuthController의 login과 refreshToken 메서드는 ResponseEntity를 반환하도록 수정되고, JWT 필터는 Authorization 헤더 대신 쿠키에서 토큰을 추출합니다. OAuthController는 리다이렉트 응답 반환 타입을 업데이트합니다.

Changes

Cohort / File(s) 요약
AuthController 토큰 전달 변경
src/main/java/project/flipnote/auth/controller/AuthController.java
login 및 refreshToken 메서드의 반환 타입을 ResponseEntity에서 ResponseEntity로 변경, 응답 본문 제거 및 액세스 토큰 쿠키를 Set-Cookie 헤더로 추가
OAuthController 서명 업데이트
src/main/java/project/flipnote/auth/controller/OAuthController.java
redirectToProviderAuthorization 메서드의 반환 타입을 ResponseEntity에서 ResponseEntity으로 변경
AuthControllerDocs 문서 인터페이스 동기화
src/main/java/project/flipnote/auth/controller/docs/AuthControllerDocs.java
login 및 refreshToken 메서드 서명을 ResponseEntity로 업데이트, UserLoginResponse 임포트 제거, 보안 어노테이션 포맷팅 조정
OAuthControllerDocs 문서 인터페이스 동기화
src/main/java/project/flipnote/auth/controller/docs/OAuthControllerDocs.java
redirectToProviderAuthorization 반환 타입을 ResponseEntity에서 ResponseEntity으로 변경
JWT 필터 및 상수 리팩토링
src/main/java/project/flipnote/common/security/filter/JwtAuthenticationFilter.java, src/main/java/project/flipnote/common/security/jwt/JwtConstants.java
doFilterInternal에서 토큰 추출을 Authorization 헤더에서 쿠키(ACCESS_TOKEN)로 변경, AUTH_HEADER 및 TOKEN_PREFIX 상수 제거, ACCESS_TOKEN 상수 추가, 디버그 로깅 추가

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant AuthController
    participant JwtService
    participant Response as HTTP Response

    Client->>AuthController: POST /login (credentials)
    AuthController->>JwtService: generateTokens()
    JwtService-->>AuthController: TokenPair(accessToken, refreshToken)
    AuthController->>Response: setHeader(Set-Cookie: accessToken=...)
    AuthController->>Response: setHeader(Set-Cookie: refreshToken=...)
    AuthController-->>Client: ResponseEntity<Void> (200 OK)
    
    Note over Client,Response: Token is now in HTTP-Only Cookie,<br/>not in response body
Loading
sequenceDiagram
    participant Client
    participant JwtAuthenticationFilter
    participant SecurityContext
    participant Controller

    Client->>JwtAuthenticationFilter: Request with Cookie: accessToken=...
    JwtAuthenticationFilter->>JwtAuthenticationFilter: extractToken() from cookies
    JwtAuthenticationFilter->>JwtAuthenticationFilter: validateAndParseToken()
    alt Token Valid
        JwtAuthenticationFilter->>SecurityContext: setAuthentication(userAuth)
        JwtAuthenticationFilter->>Controller: doFilter (pass through)
        Controller-->>Client: Response
    else Token Invalid
        JwtAuthenticationFilter-->>Client: 401 Unauthorized
    end
    
    Note over JwtAuthenticationFilter: Previously extracted from<br/>Authorization: Bearer ... header
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • 주의 필요 영역:
    • AuthController와 OAuthController의 반환 타입 변경이 클라이언트 코드에 미치는 영향 확인 필요
    • JwtAuthenticationFilter의 토큰 추출 로직 변경으로 인한 기존 Bearer 토큰 처리 호환성 검토 필요
    • System.out.println 디버그 로깅이 프로덕션 환경에서 제거되어야 하는지 확인 필요
    • 쿠키 기반 토큰 전달의 보안 설정(HttpOnly, Secure, SameSite 플래그)이 적절히 구성되었는지 검증 필요

Possibly related PRs

Suggested reviewers

  • stoneTiger0912

Poem

🐰 쿠키에 담은 토큰이 나풀거리고,
응답 헤더에 살짝 숨겨진 비밀,
Bearer는 안녕, 새 인증의 시작이야,
필터를 통과하며 보안을 속삭이는,
JWT의 춤을 따라 무한 반복! 🍪✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/access-token

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fbcedec and 29d3dc9.

📒 Files selected for processing (6)
  • src/main/java/project/flipnote/auth/controller/AuthController.java (5 hunks)
  • src/main/java/project/flipnote/auth/controller/OAuthController.java (1 hunks)
  • src/main/java/project/flipnote/auth/controller/docs/AuthControllerDocs.java (2 hunks)
  • src/main/java/project/flipnote/auth/controller/docs/OAuthControllerDocs.java (1 hunks)
  • src/main/java/project/flipnote/common/security/filter/JwtAuthenticationFilter.java (3 hunks)
  • src/main/java/project/flipnote/common/security/jwt/JwtConstants.java (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dungbik dungbik deleted the feat/access-token branch November 27, 2025 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants