Skip to content

Commit 31346bd

Browse files
committed
update :: Secret 분리
1 parent 396b059 commit 31346bd

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

src/main/java/com/gcms/v3/global/security/jwt/JwtTokenProvider.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import jakarta.annotation.PostConstruct;
1010
import jakarta.servlet.http.HttpServletRequest;
1111
import lombok.RequiredArgsConstructor;
12-
import org.springframework.beans.factory.annotation.Value;
1312
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
1413
import org.springframework.security.core.Authentication;
1514
import org.springframework.security.core.userdetails.UserDetails;
@@ -20,24 +19,24 @@
2019
import java.time.LocalDateTime;
2120
import java.util.Date;
2221

22+
import static com.gcms.v3.global.security.jwt.JwtProperties.*;
23+
2324
@Component
2425
@RequiredArgsConstructor
2526
public class JwtTokenProvider {
2627

27-
@Value("${jwt.secret}")
28-
private String secretKey;
29-
private static final String AUTHORITIES = "auth";
30-
private static final String GRANT_TYPE = "Bearer";
31-
private static final String TOKEN_PREFIX = "Bearer ";
32-
private static final long ACCESS_TOKEN_TIME = 1000 * 60 * 30L;
33-
private static final long REFRESH_TOKEN_TIME = 1000L * 60 * 60 * 24 * 7;
34-
private static Key key;
28+
private static Key accessTokenkey;
29+
private static Key refreshtokenkey;
3530
private final AuthDetailsService authDetailsService;
31+
private final JwtProperties jwtProperties;
3632

3733
@PostConstruct
3834
public void init() {
39-
byte[] keyBytes = Decoders.BASE64.decode(secretKey);
40-
key = Keys.hmacShaKeyFor(keyBytes);
35+
byte[] keyBytes = Decoders.BASE64.decode(jwtProperties.getAccessTokenKey());
36+
accessTokenkey = Keys.hmacShaKeyFor(keyBytes);
37+
38+
byte[] refreshKeyBytes = Decoders.BASE64.decode(jwtProperties.getRefreshTokenKey());
39+
refreshtokenkey = Keys.hmacShaKeyFor(refreshKeyBytes);
4140
}
4241

4342
public TokenInfoResponseDto generateToken(String email) {
@@ -60,7 +59,7 @@ private String generateAccessToken(String email) {
6059
.setHeaderParam("typ", GRANT_TYPE)
6160
.claim(AUTHORITIES, "JWT")
6261
.setExpiration(accessTokenExpiresIn)
63-
.signWith(key, SignatureAlgorithm.HS256)
62+
.signWith(accessTokenkey, SignatureAlgorithm.HS256)
6463
.compact();
6564
}
6665

@@ -72,7 +71,7 @@ private String generateRefreshToken(String email) {
7271
return Jwts.builder()
7372
.setSubject(email)
7473
.setHeaderParam("typ", "JWT")
75-
.signWith(key, SignatureAlgorithm.HS256)
74+
.signWith(refreshtokenkey, SignatureAlgorithm.HS256)
7675
.claim(AUTHORITIES, "JWT")
7776
.setIssuedAt(new Date())
7877
.setExpiration(refreshTokenExpiresIn)
@@ -92,7 +91,7 @@ public Authentication getAuthentication(String token) {
9291

9392
private Claims parseClaims(String assessToken) {
9493
try {
95-
return Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(assessToken).getBody();
94+
return Jwts.parserBuilder().setSigningKey(accessTokenkey).build().parseClaimsJws(assessToken).getBody();
9695
} catch (ExpiredJwtException e) {
9796
return e.getClaims();
9897
}
@@ -108,7 +107,7 @@ public String resolveToken(HttpServletRequest request) {
108107

109108
public boolean validateToken(String token) {
110109
try {
111-
Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token);
110+
Jwts.parserBuilder().setSigningKey(accessTokenkey).build().parseClaimsJws(token);
112111
return true;
113112
} catch (SecurityException | MalformedJwtException e) {
114113
throw new InvalidAuthTokenException();

src/main/resources/application.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,6 @@ spring:
3434
port: 6379
3535

3636
jwt:
37-
secret: ${JWT_SECRET}
37+
secret:
38+
access-token: ${ACCESS_TOKEN_KEY}
39+
refresh-token: ${REFRESH_TOKEN_KEY}

0 commit comments

Comments
 (0)