diff --git a/src/main/java/org/ezcode/codetest/application/submission/service/SubmissionService.java b/src/main/java/org/ezcode/codetest/application/submission/service/SubmissionService.java index 90507938..3216efb0 100644 --- a/src/main/java/org/ezcode/codetest/application/submission/service/SubmissionService.java +++ b/src/main/java/org/ezcode/codetest/application/submission/service/SubmissionService.java @@ -56,6 +56,11 @@ public class SubmissionService { private final GitHubPushService gitHubPushService; public SubmitResponse prepareSubmission(Long problemId, AuthUser authUser) { + + if (authUser == null) { + throw new SubmissionException(SubmissionExceptionCode.AUTH_REQUIRED); + } + boolean acquired = lockManager.tryLock("submission", authUser.getId(), problemId); if (!acquired) { throw new SubmissionException(SubmissionExceptionCode.ALREADY_JUDGING); diff --git a/src/main/java/org/ezcode/codetest/common/security/util/SecurityPath.java b/src/main/java/org/ezcode/codetest/common/security/util/SecurityPath.java index fefd066c..0555d87d 100644 --- a/src/main/java/org/ezcode/codetest/common/security/util/SecurityPath.java +++ b/src/main/java/org/ezcode/codetest/common/security/util/SecurityPath.java @@ -17,7 +17,7 @@ public class SecurityPath { "/actuator/**", "/chatting", "/submit-test/**", - "/problems/**", + "/api/problems/**", "/ws/**", "/swagger-ui/**", "/swagger-resources/**", diff --git a/src/main/java/org/ezcode/codetest/domain/submission/exception/code/SubmissionExceptionCode.java b/src/main/java/org/ezcode/codetest/domain/submission/exception/code/SubmissionExceptionCode.java index 50bf94b1..7383fa90 100644 --- a/src/main/java/org/ezcode/codetest/domain/submission/exception/code/SubmissionExceptionCode.java +++ b/src/main/java/org/ezcode/codetest/domain/submission/exception/code/SubmissionExceptionCode.java @@ -17,6 +17,7 @@ public enum SubmissionExceptionCode implements ResponseCode { TESTCASE_TIMEOUT(false, HttpStatus.GATEWAY_TIMEOUT, "테스트케이스 채점 시간이 초과되었습니다."), REDIS_SERVER_ERROR(false, HttpStatus.INTERNAL_SERVER_ERROR, "Redis 서버 연결 실패"), ALREADY_JUDGING(false, HttpStatus.CONFLICT, "이미 해당 문제에 대한 채점이 진행 중입니다."), + AUTH_REQUIRED(false, HttpStatus.UNAUTHORIZED, "로그인 후 이용해주세요."), UNKNOWN_ERROR(false, HttpStatus.INTERNAL_SERVER_ERROR, "알 수 없는 예외가 발생했습니다."), ; private final boolean success;