From c5b779fda720d8ffe1feda880174a3827c78b033 Mon Sep 17 00:00:00 2001 From: Kim DongHyo <60608509+kdhyo@users.noreply.github.com> Date: Mon, 1 Aug 2022 23:45:09 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=A6=AC=ED=94=84=EB=A0=88=EC=89=AC=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EC=8B=9C=20ROLE=5F=EC=9D=B4=20=EC=A4=91=EB=B3=B5=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B6=99=EC=97=AC=EC=84=9C=20=EB=82=98=EC=98=A4?= =?UTF-8?q?=EB=8A=94=20=EB=B6=80=EB=B6=84=20=EC=88=98=EC=A0=95=20(#90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ticketing/server/global/redis/RefreshToken.java | 3 ++- .../server/global/security/jwt/JwtProvider.java | 3 ++- .../user/service/AuthenticationServiceImpl.java | 12 +++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/com/ticketing/server/global/redis/RefreshToken.java b/server/src/main/java/com/ticketing/server/global/redis/RefreshToken.java index b83771d..4436f77 100644 --- a/server/src/main/java/com/ticketing/server/global/redis/RefreshToken.java +++ b/server/src/main/java/com/ticketing/server/global/redis/RefreshToken.java @@ -28,8 +28,9 @@ public class RefreshToken { this.token = token; } - public void changeToken(String token) { + public RefreshToken changeToken(String token) { this.token = token; + return this; } } diff --git a/server/src/main/java/com/ticketing/server/global/security/jwt/JwtProvider.java b/server/src/main/java/com/ticketing/server/global/security/jwt/JwtProvider.java index 9eb16f4..8e36f80 100644 --- a/server/src/main/java/com/ticketing/server/global/security/jwt/JwtProvider.java +++ b/server/src/main/java/com/ticketing/server/global/security/jwt/JwtProvider.java @@ -27,6 +27,7 @@ public class JwtProvider { private static final String AUTHORITIES_KEY = "auth"; private static final String AUTHORITIES_DELIMITER = ","; + private static final String ROLE = "ROLE_"; private final Key key; private final String prefix; @@ -89,7 +90,7 @@ public class JwtProvider { } private String makeRoleName(String role) { - return "ROLE_" + role.toUpperCase(); + return role.contains(ROLE) ? role.toUpperCase() : ROLE + role.toUpperCase(); } public Authentication getAuthentication(String token) { diff --git a/server/src/main/java/com/ticketing/server/user/service/AuthenticationServiceImpl.java b/server/src/main/java/com/ticketing/server/user/service/AuthenticationServiceImpl.java index d534c09..ef29af0 100644 --- a/server/src/main/java/com/ticketing/server/user/service/AuthenticationServiceImpl.java +++ b/server/src/main/java/com/ticketing/server/user/service/AuthenticationServiceImpl.java @@ -5,8 +5,8 @@ import com.ticketing.server.global.redis.RefreshRedisRepository; import com.ticketing.server.global.redis.RefreshToken; import com.ticketing.server.global.security.jwt.JwtProperties; import com.ticketing.server.global.security.jwt.JwtProvider; -import com.ticketing.server.user.service.dto.TokenDTO; import com.ticketing.server.user.service.dto.DeleteRefreshTokenDTO; +import com.ticketing.server.user.service.dto.TokenDTO; import com.ticketing.server.user.service.interfaces.AuthenticationService; import lombok.RequiredArgsConstructor; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -40,8 +40,14 @@ public class AuthenticationServiceImpl implements AuthenticationService { // refresh 토큰이 있으면 수정, 없으면 생성 refreshRedisRepository.findByEmail(email) .ifPresentOrElse( - tokenEntity -> tokenEntity.changeToken(tokenDto.getRefreshToken()), - () -> refreshRedisRepository.save(new RefreshToken(email, tokenDto.getRefreshToken())) + tokenEntity -> refreshRedisRepository.save( + tokenEntity.changeToken( + tokenDto.getRefreshToken() + ) + ), + () -> refreshRedisRepository.save( + new RefreshToken(email, tokenDto.getRefreshToken()) + ) ); return tokenDto;