Conversation
Review Summary by QodoImplement production API Key validation with HMAC hashing
WalkthroughsDescription• Replace dummy API Key validation with production-ready HMAC-based verification • Add database lookup by key prefix and status validation • Implement constant-time comparison for secure hash verification • Add comprehensive unit tests covering all validation scenarios Diagramflowchart LR
A["Raw API Key"] --> B["Extract Prefix"]
B --> C["Query DB by Prefix"]
C --> D{Key Found?}
D -->|No| E["Return null"]
D -->|Yes| F{Status Active?}
F -->|No| E
F -->|Yes| G["Compute HMAC Hash"]
G --> H["Constant-time Compare"]
H --> I{Match?}
I -->|Yes| J["Return ProjectId"]
I -->|No| E
File Changes1. src/main/java/kr/java/documind/domain/auth/model/repository/ProjectApiKeyRepository.java
|
Code Review by Qodo
1.
|
|
Last reviewed commit: 4377fa5 |
src/main/java/kr/java/documind/domain/auth/model/repository/ProjectApiKeyRepository.java
Show resolved
Hide resolved
src/main/java/kr/java/documind/domain/member/service/ProjectApiKeyValidationService.java
Outdated
Show resolved
Hide resolved
src/main/java/kr/java/documind/domain/member/service/ProjectApiKeyValidationService.java
Outdated
Show resolved
Hide resolved
src/test/java/kr/java/documind/domain/member/service/ProjectApiKeyValidationServiceTest.java
Outdated
Show resolved
Hide resolved
src/main/java/kr/java/documind/domain/member/service/ProjectApiKeyValidationService.java
Outdated
Show resolved
Hide resolved
src/main/java/kr/java/documind/domain/member/service/ProjectApiKeyValidationService.java
Outdated
Show resolved
Hide resolved
|
@greptileai review |
|
Last reviewed commit: 1889a07 |
src/main/java/kr/java/documind/domain/member/service/ProjectApiKeyValidationService.java
Outdated
Show resolved
Hide resolved
src/main/java/kr/java/documind/domain/auth/model/repository/ProjectApiKeyRepository.java
Show resolved
Hide resolved
ParkGoeun00
left a comment
There was a problem hiding this comment.
API 키 검증 필터 체인 등 로그 수집하실 때 API 키 검증 적용하시는 건 다음에 다른 이슈에서 하시는 거죠? 우선 유효한 ProjectId 반환 기능까지 잘 구현된 것 같습니다!
@ParkGoeun00 현재 dev 브랜치에 API Key를 검증하는 필터가 이미 적용된 상태입니다. 해당 pr에서는 구체적인 로직만 작성했습니다 |
관련 이슈
작업 내용
체크 리스트
변경 사항 요약
리뷰어에게