From aab0fbae2bcfc2f85ad2cf6055ed838126605137 Mon Sep 17 00:00:00 2001 From: TaeyeonRoyce Date: Fri, 9 Aug 2024 15:11:05 +0900 Subject: [PATCH] =?UTF-8?q?hotfix:=20=EC=86=8C=EC=85=9C=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20url=20=EC=9A=94=EC=B2=AD=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20redirect=EA=B0=80=20=EC=95=84=EB=8B=8C=20=EC=9D=BC?= =?UTF-8?q?=EB=B0=98=20body=20=EC=9D=91=EB=8B=B5=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/ExceptionControllerAdvice.kt | 18 ++++++++++++++++++ .../member/adapter/in/rest/SocialLoginApi.kt | 4 +--- .../adapter/in/rest/SocialLoginController.kt | 6 ++---- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/celuveat/common/exception/ExceptionControllerAdvice.kt b/src/main/kotlin/com/celuveat/common/exception/ExceptionControllerAdvice.kt index 5b0d56f4..81dd038b 100644 --- a/src/main/kotlin/com/celuveat/common/exception/ExceptionControllerAdvice.kt +++ b/src/main/kotlin/com/celuveat/common/exception/ExceptionControllerAdvice.kt @@ -4,6 +4,7 @@ import jakarta.servlet.http.HttpServletRequest import org.slf4j.LoggerFactory import org.springframework.http.HttpStatus.NOT_FOUND import org.springframework.http.ResponseEntity +import org.springframework.web.bind.MissingRequestValueException import org.springframework.web.bind.annotation.ExceptionHandler import org.springframework.web.bind.annotation.RestControllerAdvice import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException @@ -65,6 +66,23 @@ class ExceptionControllerAdvice { ) } + @ExceptionHandler(MissingRequestValueException::class) + fun handleMissingRequestValueException( + request: HttpServletRequest, + e: MissingRequestValueException, + ): ResponseEntity { + log.warn( + """ + 요청에 필요한 값이 누락되었습니다. + URI: ${request.requestURI} + 내용: ${e.message} + """, + ) + return ResponseEntity.badRequest().body( + ExceptionResponse("요청에 필요한 값이 누락되었습니다."), + ) + } + @ExceptionHandler(Exception::class) fun handleException( request: HttpServletRequest, diff --git a/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginApi.kt b/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginApi.kt index b350fe62..966a6ec9 100644 --- a/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginApi.kt +++ b/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginApi.kt @@ -8,7 +8,6 @@ import io.swagger.v3.oas.annotations.Parameter import io.swagger.v3.oas.annotations.enums.ParameterIn import io.swagger.v3.oas.annotations.security.SecurityRequirement import io.swagger.v3.oas.annotations.tags.Tag -import jakarta.servlet.http.HttpServletResponse import org.springframework.http.HttpHeaders import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.DeleteMapping @@ -59,8 +58,7 @@ interface SocialLoginApi { example = "http://localhost:3000", ) @RequestHeader(HttpHeaders.ORIGIN) requestOrigin: String, - response: HttpServletResponse, - ) + ): String @SecurityRequirement(name = "JWT") @Operation(summary = "소셜 회원 탈퇴") diff --git a/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginController.kt b/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginController.kt index 9830644b..112dd3d9 100644 --- a/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginController.kt +++ b/src/main/kotlin/com/celuveat/member/adapter/in/rest/SocialLoginController.kt @@ -9,7 +9,6 @@ import com.celuveat.member.application.port.`in`.WithdrawSocialLoginUseCase import com.celuveat.member.application.port.`in`.command.SocialLoginCommand import com.celuveat.member.application.port.`in`.command.WithdrawSocialLoginCommand import com.celuveat.member.domain.SocialLoginType -import jakarta.servlet.http.HttpServletResponse import org.springframework.http.HttpHeaders import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.DeleteMapping @@ -44,10 +43,9 @@ class SocialLoginController( override fun redirectLoginUrl( @PathVariable socialLoginType: SocialLoginType, @RequestHeader(HttpHeaders.ORIGIN) requestOrigin: String, - response: HttpServletResponse, - ) { + ): String { val socialLoginUrl = getSocialLoginUrlUseCase.getSocialLoginUrl(socialLoginType, requestOrigin) - response.sendRedirect(socialLoginUrl) + return socialLoginUrl } @DeleteMapping("/withdraw/{socialLoginType}")