From 93848e6b79126fe102cbd42e8da2e0bda9953fd7 Mon Sep 17 00:00:00 2001 From: lazy_turtle <62019532+kimJH47@users.noreply.github.com> Date: Tue, 6 Feb 2024 18:05:58 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20payload=20=EC=84=A4=EC=A0=95=20=EC=88=9C?= =?UTF-8?q?=EC=84=9C=20=EB=B3=80=EA=B2=BD=20(#165)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infrastructure/RefreshTokenProvider.java | 2 +- .../RefreshTokenProviderTest.java | 71 +++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProviderTest.java diff --git a/src/main/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProvider.java b/src/main/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProvider.java index 6683569..2db5490 100644 --- a/src/main/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProvider.java +++ b/src/main/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProvider.java @@ -29,10 +29,10 @@ public String provide(Map payload) { final Date endDate = new Date(nowDate.getTime() + expireMillis); return Jwts.builder() + .setClaims(payload) .setSubject(subject) .setIssuedAt(nowDate) .setExpiration(endDate) - .setClaims(payload) .signWith(secretKey, SignatureAlgorithm.HS256) .compact(); } diff --git a/src/test/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProviderTest.java b/src/test/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProviderTest.java new file mode 100644 index 0000000..b17585f --- /dev/null +++ b/src/test/java/com/salmalteam/salmal/auth/infrastructure/RefreshTokenProviderTest.java @@ -0,0 +1,71 @@ +package com.salmalteam.salmal.auth.infrastructure; + +import static org.assertj.core.api.Assertions.*; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import com.salmalteam.salmal.support.TokenValidator; + +class RefreshTokenProviderTest { + private RefreshTokenProvider refreshTokenProvider; + private final String SECRET_KEY = "K".repeat(32); + + private TokenValidator tokenValidator; + + private final String subject = "refreshToken"; + + @BeforeEach + void setUp() { + Long ACCESS_TOKEN_EXPIRY = 100000L; + refreshTokenProvider = new RefreshTokenProvider(SECRET_KEY, subject, ACCESS_TOKEN_EXPIRY); + tokenValidator = new TokenValidator(SECRET_KEY); + } + + @Nested + class 접근_토큰_생성_테스트 { + @Test + void 전달받은_ID_를_페이로드에_넣어_접근토큰을_생성_한다() { + //given + HashMap payload = new HashMap<>(); + payload.put("id", 500L); + payload.put("name", "재현"); + + // when + String actual = refreshTokenProvider.provide(payload); + + //then + assertThat(actual).isNotNull(); + assertThat(tokenValidator.isValidate(actual)).isTrue(); + assertThat(tokenValidator.hasClaims(actual, "id", 500L, Long.class)).isTrue(); + assertThat(tokenValidator.hasClaims(actual, "name", "재현", String.class)).isTrue(); + assertThat(tokenValidator.hasClaims(actual, "sub", subject, String.class)).isTrue(); + + } + } + + @Nested + class 재발급_토큰_생성_테스트 { + @Test + void 전달받은_ID_를_페이로드에_넣어_재발급토큰을_생성한다() { + // given + final Long id = 32L; + Map payload = createPayloadWithIdClaim(id); + + // when + final String refreshToken = refreshTokenProvider.provide(payload); + // then + assertThat(refreshToken).isNotNull(); + } + } + + private Map createPayloadWithIdClaim(Long id) { + HashMap payload = new HashMap<>(); + payload.put("id", id); + return payload; + } +} \ No newline at end of file