From 528b014f7e0a44be9c350d113158445c50183188 Mon Sep 17 00:00:00 2001 From: HEY <50323157+SSung023@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:24:08 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[FIX]=20=EB=B0=B0=ED=8F=AC=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=EC=97=90=EC=84=9C=20=EC=BB=A4=EC=8A=A4=ED=85=80=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=ED=95=B8=EB=93=A4=EB=A7=81=EC=9D=B4=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=ED=94=BD=EC=8A=A4=20(#108)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BusinessException이 발생했음에도 불구하고, GlobalExceptionHandler가 동작해서 커스텀 예외가 전달되지 않는 버그 발생 - 스프링의 컴포넌트 스캔 과정에서, 클래스가 로드되는 순서가 달라져서 발생하는 문제로 판단 - 일관된 동작 보장을 위해 @Order 어노테이션을 통해 우선순위 설정 --- .../global/exception/handler/BusinessExceptionHandler.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/genius/herewe/core/global/exception/handler/BusinessExceptionHandler.java b/src/main/java/com/genius/herewe/core/global/exception/handler/BusinessExceptionHandler.java index 8d4bb7a..1e21b22 100644 --- a/src/main/java/com/genius/herewe/core/global/exception/handler/BusinessExceptionHandler.java +++ b/src/main/java/com/genius/herewe/core/global/exception/handler/BusinessExceptionHandler.java @@ -1,5 +1,7 @@ package com.genius.herewe.core.global.exception.handler; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @@ -11,6 +13,7 @@ @Slf4j @RestControllerAdvice +@Order(Ordered.HIGHEST_PRECEDENCE) public class BusinessExceptionHandler { @ExceptionHandler(BusinessException.class) From c55608524b91cdbbed86c804cd56db37cd3cdf44 Mon Sep 17 00:00:00 2001 From: SSung023 Date: Thu, 24 Apr 2025 15:44:35 +0900 Subject: [PATCH 2/2] =?UTF-8?q?!HOTFIX:=20=EB=AA=A8=EB=A8=BC=ED=8A=B8=20?= =?UTF-8?q?=EC=B0=B8=EC=97=AC=EC=9E=90=EA=B0=80=20=EC=95=84=EB=8B=90=20?= =?UTF-8?q?=EB=95=8C=20403=20=EB=B0=98=ED=99=98=ED=95=98=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 모먼트 수정/장소 수저 요청 시, 모먼트 참여자가 아닐 때 즉, 권한이 없을 때 403 FORBIDDEN을 반환하도록 변경 --- .../java/com/genius/herewe/core/global/exception/ErrorCode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/genius/herewe/core/global/exception/ErrorCode.java b/src/main/java/com/genius/herewe/core/global/exception/ErrorCode.java index 989c270..be3db40 100644 --- a/src/main/java/com/genius/herewe/core/global/exception/ErrorCode.java +++ b/src/main/java/com/genius/herewe/core/global/exception/ErrorCode.java @@ -44,7 +44,7 @@ public enum ErrorCode { MOMENT_DEADLINE_EXPIRED(HttpStatus.BAD_REQUEST, "모먼트 참여 마감일자가 지났습니다. 모먼트 참여/참여 취소는 마감일자 이전까지 가능합니다."), MOMENT_CAPACITY_FULL(HttpStatus.BAD_REQUEST, "참여 인원이 최대 정원에 도달했습니다."), - MOMENT_PARTICIPATION_NOT_FOUND(HttpStatus.NOT_FOUND, "모먼트 참여 정보를 찾을 수 없습니다. 모먼트 참여자가 아닙니다."), + MOMENT_PARTICIPATION_NOT_FOUND(HttpStatus.FORBIDDEN, "모먼트 참여 정보를 찾을 수 없습니다. 모먼트 참여자가 아닙니다."), LOCATION_ALREADY_EXISTS(HttpStatus.CONFLICT, "해당 순서의 장소가 이미 추가되었습니다. 잠시 후 다시 시도해주세요."), LOCATION_LIMIT_EXCEEDED(HttpStatus.BAD_REQUEST, "장소는 최대 100개까지 등록할 수 있습니다."),