Skip to content

Commit bba7e02

Browse files
authored
accessToken과 refreshToken을 추출하는 메서드 분리 (#13)
refreshToken을 추출하는 메서드를 추가했습니다. 기존에는 accessToken만 추출을 하였는데, refreshToken 또한 추출하여서 내부 값을 확인해야하므로 메서드를 추가하였습니다. 추가적으로 formatter를 제거하고, 전반적인 코드의 format을 변경하였습니다. 버전 업을 할 때 한꺼번에 하고 싶었습니다.
1 parent 591b5f3 commit bba7e02

File tree

9 files changed

+30
-47
lines changed

9 files changed

+30
-47
lines changed

.github/workflows/reformat-java.yml

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/main/java/online/partyrun/jwtmanager/JwtExtractor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@
33
import online.partyrun.jwtmanager.dto.JwtPayload;
44

55
public interface JwtExtractor {
6-
JwtPayload extract(String accessToken);
6+
JwtPayload extractAccessToken(String accessToken);
7+
8+
JwtPayload extractRefreshToken(String refreshToken);
79
}

src/main/java/online/partyrun/jwtmanager/config/JwtConfig.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44
import lombok.RequiredArgsConstructor;
55
import lombok.experimental.FieldDefaults;
66
import lombok.extern.slf4j.Slf4j;
7-
87
import online.partyrun.jwtmanager.manager.JwtManager;
98
import online.partyrun.jwtmanager.manager.TokenManager;
10-
119
import org.springframework.beans.factory.annotation.Value;
1210
import org.springframework.boot.autoconfigure.AutoConfiguration;
1311
import org.springframework.context.annotation.Bean;
@@ -22,9 +20,8 @@ public class JwtConfig {
2220
public JwtManager jwtManager(
2321
@Value("${jwt.access-secret-key}") String accessKey,
2422
@Value("${jwt.access-expire-second:#{'1'}}") Long accessExpireSecond,
25-
@Value(
26-
"${jwt.refresh-secret-key:#{'DefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefault'}}")
27-
String refreshKey,
23+
@Value("${jwt.refresh-secret-key:#{'DefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefaultDefault'}}")
24+
String refreshKey,
2825
@Value("${jwt.refresh-expire-second:#{'1'}}") Long refreshExpireSecond) {
2926
log.info("Starting JwtManager");
3027
return new JwtManager(

src/main/java/online/partyrun/jwtmanager/dto/JwtPayload.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
import java.time.LocalDateTime;
44
import java.util.List;
55

6-
public record JwtPayload(String id, List<String> roles, LocalDateTime expireAt) {}
6+
public record JwtPayload(String id, List<String> roles, LocalDateTime expireAt) {
7+
}

src/main/java/online/partyrun/jwtmanager/dto/JwtToken.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
import lombok.Builder;
44

55
@Builder
6-
public record JwtToken(String accessToken, String refreshToken) {}
6+
public record JwtToken(String accessToken, String refreshToken) {
7+
}

src/main/java/online/partyrun/jwtmanager/manager/JwtManager.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import lombok.AccessLevel;
44
import lombok.RequiredArgsConstructor;
55
import lombok.experimental.FieldDefaults;
6-
76
import online.partyrun.jwtmanager.JwtExtractor;
87
import online.partyrun.jwtmanager.JwtGenerator;
98
import online.partyrun.jwtmanager.dto.JwtPayload;
@@ -26,11 +25,6 @@ public JwtToken generate(String id, Set<String> roles) {
2625
.build();
2726
}
2827

29-
@Override
30-
public JwtPayload extract(String accessToken) {
31-
return accessTokenManager.extract(accessToken);
32-
}
33-
3428
@Override
3529
public JwtToken refresh(String refreshToken) {
3630
final JwtPayload jwtPayload = refreshTokenManager.extract(refreshToken);
@@ -39,4 +33,14 @@ public JwtToken refresh(String refreshToken) {
3933
.refreshToken(refreshTokenManager.generate(jwtPayload.id(), jwtPayload.roles()))
4034
.build();
4135
}
36+
37+
@Override
38+
public JwtPayload extractAccessToken(String accessToken) {
39+
return accessTokenManager.extract(accessToken);
40+
}
41+
42+
@Override
43+
public JwtPayload extractRefreshToken(String refreshToken) {
44+
return refreshTokenManager.extract(refreshToken);
45+
}
4246
}

src/main/java/online/partyrun/jwtmanager/manager/TokenManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
import io.jsonwebtoken.SignatureAlgorithm;
66
import io.jsonwebtoken.io.Decoders;
77
import io.jsonwebtoken.security.Keys;
8-
98
import lombok.AccessLevel;
109
import lombok.experimental.FieldDefaults;
11-
1210
import online.partyrun.jwtmanager.dto.JwtPayload;
13-
1411
import org.springframework.util.StringUtils;
1512

1613
import java.security.Key;
1714
import java.sql.Timestamp;
1815
import java.time.LocalDateTime;
1916
import java.time.ZoneId;
20-
import java.util.*;
17+
import java.util.ArrayList;
18+
import java.util.Collection;
19+
import java.util.Date;
20+
import java.util.List;
2121

2222
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
2323
public class TokenManager {

src/test/java/online/partyrun/jwtmanager/manager/JwtManagerTest.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package online.partyrun.jwtmanager.manager;
22

3-
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.junit.jupiter.api.Assertions.assertAll;
5-
63
import lombok.AccessLevel;
74
import lombok.experimental.FieldDefaults;
8-
95
import online.partyrun.jwtmanager.dto.JwtToken;
10-
116
import org.junit.jupiter.api.*;
127

138
import java.util.Set;
149

10+
import static org.assertj.core.api.Assertions.assertThat;
11+
import static org.junit.jupiter.api.Assertions.assertAll;
12+
1513
@DisplayName("JwtManagerTest 클래스")
1614
@FieldDefaults(level = AccessLevel.PRIVATE)
1715
class JwtManagerTest {

src/test/java/online/partyrun/jwtmanager/manager/TokenManagerTest.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
package online.partyrun.jwtmanager.manager;
22

3-
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.assertj.core.api.Assertions.assertThatThrownBy;
5-
import static org.junit.jupiter.api.Assertions.assertAll;
6-
73
import io.jsonwebtoken.ExpiredJwtException;
84
import io.jsonwebtoken.MalformedJwtException;
9-
105
import lombok.AccessLevel;
116
import lombok.experimental.FieldDefaults;
12-
137
import online.partyrun.jwtmanager.dto.JwtPayload;
14-
158
import org.junit.jupiter.api.*;
169
import org.junit.jupiter.params.ParameterizedTest;
1710
import org.junit.jupiter.params.provider.EmptySource;
@@ -22,6 +15,10 @@
2215
import java.time.temporal.ChronoUnit;
2316
import java.util.Set;
2417

18+
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
20+
import static org.junit.jupiter.api.Assertions.assertAll;
21+
2522
@DisplayName("TokenManager 클래스")
2623
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
2724
class TokenManagerTest {

0 commit comments

Comments
 (0)