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}")