From 463d233d1314b92260cb7b706b52f45d0104d10d Mon Sep 17 00:00:00 2001 From: binghe819 Date: Thu, 11 Nov 2021 08:51:24 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Redis=20Token=20=EC=A0=80=EC=9E=A5?= =?UTF-8?q?=EC=8B=9C=20TTL=20=EC=84=A4=EC=A0=95=EB=90=98=EB=8F=84=EB=A1=9D?= =?UTF-8?q?=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/pick-git/security | 2 +- .../dao/RedisOAuthAccessTokenDao.java | 16 ++++++++++++++-- .../OAuthServiceIntegrationTest.java | 6 +++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/backend/pick-git/security b/backend/pick-git/security index 19bda2679..ca6a376c4 160000 --- a/backend/pick-git/security +++ b/backend/pick-git/security @@ -1 +1 @@ -Subproject commit 19bda26792fe035af03ac43123666cb0b3c2a142 +Subproject commit ca6a376c4262a2d82f0f33071ccccda285550fd9 diff --git a/backend/pick-git/src/main/java/com/woowacourse/pickgit/authentication/infrastructure/dao/RedisOAuthAccessTokenDao.java b/backend/pick-git/src/main/java/com/woowacourse/pickgit/authentication/infrastructure/dao/RedisOAuthAccessTokenDao.java index da888be09..425720f45 100644 --- a/backend/pick-git/src/main/java/com/woowacourse/pickgit/authentication/infrastructure/dao/RedisOAuthAccessTokenDao.java +++ b/backend/pick-git/src/main/java/com/woowacourse/pickgit/authentication/infrastructure/dao/RedisOAuthAccessTokenDao.java @@ -2,6 +2,8 @@ import com.woowacourse.pickgit.authentication.domain.OAuthAccessTokenDao; import java.util.Optional; +import java.util.concurrent.TimeUnit; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Component; @@ -10,14 +12,24 @@ public class RedisOAuthAccessTokenDao implements OAuthAccessTokenDao { private final ValueOperations opsForValue; + private final long expirationTimeInMilliSeconds; - public RedisOAuthAccessTokenDao(StringRedisTemplate redisTemplate) { + public RedisOAuthAccessTokenDao( + StringRedisTemplate redisTemplate, + @Value("${security.jwt.expiration-time}") long expirationTimeInMilliSeconds + ) { this.opsForValue = redisTemplate.opsForValue(); + this.expirationTimeInMilliSeconds = expirationTimeInMilliSeconds; } @Override public void insert(String token, String oauthAccessToken) { - opsForValue.set(token, oauthAccessToken); + opsForValue.set( + token, + oauthAccessToken, + expirationTimeInMilliSeconds, + TimeUnit.MILLISECONDS + ); } @Override diff --git a/backend/pick-git/src/test/java/com/woowacourse/pickgit/integration/authentication/OAuthServiceIntegrationTest.java b/backend/pick-git/src/test/java/com/woowacourse/pickgit/integration/authentication/OAuthServiceIntegrationTest.java index aa0a6038e..ea45ca772 100644 --- a/backend/pick-git/src/test/java/com/woowacourse/pickgit/integration/authentication/OAuthServiceIntegrationTest.java +++ b/backend/pick-git/src/test/java/com/woowacourse/pickgit/integration/authentication/OAuthServiceIntegrationTest.java @@ -21,6 +21,7 @@ import com.woowacourse.pickgit.user.domain.User; import com.woowacourse.pickgit.user.domain.repository.UserRepository; import com.woowacourse.pickgit.user.domain.search.UserSearchEngine; +import java.time.Duration; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -65,7 +66,10 @@ void setUp() { SECRET_KEY, EXPIRATION_TIME_IN_MILLISECONDS ); - this.oAuthAccessTokenDao = new RedisOAuthAccessTokenDao(redisTemplate); + this.oAuthAccessTokenDao = new RedisOAuthAccessTokenDao( + redisTemplate, + Duration.ofHours(3).toMillis() + ); this.oAuthService = new OAuthService( oAuthClient, jwtTokenProvider,