Skip to content

Commit c6bdb50

Browse files
committed
fix: 세션 소유자 검증 시 존재 여부와 권한을 분리하여 처리
1 parent 46d839e commit c6bdb50

3 files changed

Lines changed: 6 additions & 2 deletions

File tree

src/main/java/io/wisoft/prepair/prepair_api/global/exception/ErrorCode.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public enum ErrorCode {
2323
RESOURCE_NOT_FOUND(HttpStatus.NOT_FOUND, "리소스를 찾을 수 없습니다."),
2424
DUPLICATE_RESOURCE(HttpStatus.CONFLICT, "이미 존재하는 리소스입니다."),
2525

26+
// Session
27+
SESSION_NOT_FOUND(HttpStatus.NOT_FOUND, "세션을 찾을 수 없습니다."),
28+
2629
// Question
2730
QUESTION_NOT_FOUND(HttpStatus.NOT_FOUND, "질문을 찾을 수 없습니다."),
2831

src/main/java/io/wisoft/prepair/prepair_api/repository/SessionRepository.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@
55
import org.springframework.data.jpa.repository.JpaRepository;
66

77
public interface SessionRepository extends JpaRepository<InterviewSession, UUID> {
8-
boolean existsByIdAndMemberId(UUID id, UUID memberId);
98
}

src/main/java/io/wisoft/prepair/prepair_api/service/question/QuestionService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ public List<InterviewQuestion> generateVideoQuestions(UUID memberId, VideoInterv
8080
}
8181

8282
public void validateSessionOwner(UUID sessionId, UUID memberId) {
83-
if(!sessionRepository.existsByIdAndMemberId(sessionId, memberId)) {
83+
InterviewSession session = sessionRepository.findById(sessionId)
84+
.orElseThrow(() -> new BusinessException(ErrorCode.SESSION_NOT_FOUND));
85+
if (!session.getMemberId().equals(memberId)) {
8486
throw new BusinessException(ErrorCode.FORBIDDEN);
8587
}
8688
}

0 commit comments

Comments
 (0)