From 0df9663f131364976d4c398b7d54f582a7f95012 Mon Sep 17 00:00:00 2001 From: Seokmyung Ham Date: Thu, 1 Aug 2024 18:04:53 +0900 Subject: [PATCH] =?UTF-8?q?refactor(AuthArgumentResolver):=20null=20?= =?UTF-8?q?=EB=8C=80=EC=8B=A0=20Optional=20API=EB=A5=BC=20=ED=99=9C?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EC=97=AC=20=EC=BD=94=EB=93=9C=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/auth/AuthArgumentResolver.java | 16 +++++----------- .../kr/momo/service/auth/JwtManagerTest.java | 13 ++++++++----- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/kr/momo/controller/auth/AuthArgumentResolver.java b/backend/src/main/java/kr/momo/controller/auth/AuthArgumentResolver.java index e7591bb40..9a0c65e7f 100644 --- a/backend/src/main/java/kr/momo/controller/auth/AuthArgumentResolver.java +++ b/backend/src/main/java/kr/momo/controller/auth/AuthArgumentResolver.java @@ -3,8 +3,7 @@ import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletRequest; import java.util.Arrays; -import kr.momo.exception.MomoException; -import kr.momo.exception.code.AuthErrorCode; +import java.util.Optional; import kr.momo.service.auth.JwtManager; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -38,24 +37,19 @@ public Long resolveArgument( ) { HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest(); Cookie[] cookies = request.getCookies(); - String token = getCookieValue(cookies); - - if (token == null) { - throw new MomoException(AuthErrorCode.NOT_FOUND_TOKEN); - } + String token = getCookieValue(cookies).orElse(""); return jwtManager.extract(token); } - private String getCookieValue(Cookie[] cookies) { + private Optional getCookieValue(Cookie[] cookies) { if (cookies == null) { - return null; + return Optional.empty(); } return Arrays.stream(cookies) .filter(cookie -> ACCESS_TOKEN.equals(cookie.getName())) .map(Cookie::getValue) - .findFirst() - .orElse(null); + .findFirst(); } } diff --git a/backend/src/test/java/kr/momo/service/auth/JwtManagerTest.java b/backend/src/test/java/kr/momo/service/auth/JwtManagerTest.java index 1cee3e690..0ed9ce158 100644 --- a/backend/src/test/java/kr/momo/service/auth/JwtManagerTest.java +++ b/backend/src/test/java/kr/momo/service/auth/JwtManagerTest.java @@ -12,6 +12,9 @@ import kr.momo.fixture.MeetingFixture; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.NullAndEmptySource; +import org.junit.jupiter.params.provider.ValueSource; class JwtManagerTest { @@ -30,11 +33,11 @@ void generate() { assertThat(attendeeId).isEqualTo(attendee.getId()); } - @DisplayName("토큰이 올바르지 않을 경우 예외를 발생시킨다.") - @Test - void throwExceptionForInvalidToken() { - String token = "invalidToken"; - + @DisplayName("토큰이 null이거나 올바르지 않을 경우 예외를 발생시킨다.") + @ParameterizedTest + @NullAndEmptySource + @ValueSource(strings = {"invalidToken"}) + void throwExceptionForInvalidToken(String token) { assertThatThrownBy(() -> jwtManager.extract(token)) .isInstanceOf(MomoException.class) .hasMessage(AuthErrorCode.INVALID_TOKEN.message());