Skip to content

Commit 91b7918

Browse files
authored
Merge pull request #167 from Team-Going/feature/166
[fix] Access Token & Refresh Token 검증 오류 수정
2 parents 65fa1aa + 13b7549 commit 91b7918

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

doorip-api/src/main/java/org/doorip/auth/jwt/JwtGenerator.java

+8
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public String generateToken(Long userId, boolean isAccessToken) {
2727
return Jwts.builder()
2828
.setHeaderParam(Header.TYPE, Header.JWT_TYPE)
2929
.setSubject(String.valueOf(userId))
30+
.setIssuer(setIssuerBy(isAccessToken).toString())
3031
.setIssuedAt(now)
3132
.setExpiration(expiration)
3233
.signWith(getSigningKey(), SignatureAlgorithm.HS256)
@@ -62,4 +63,11 @@ private String encodeSecretKey() {
6263
return Base64.getEncoder()
6364
.encodeToString(secretKey.getBytes());
6465
}
66+
67+
private JwtType setIssuerBy(boolean isAccessToken) {
68+
if (isAccessToken) {
69+
return JwtType.AT;
70+
}
71+
return JwtType.RT;
72+
}
6573
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.doorip.auth.jwt;
2+
3+
public enum JwtType {
4+
AT,
5+
RT;
6+
}

doorip-api/src/main/java/org/doorip/auth/jwt/JwtValidator.java

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.doorip.auth.jwt;
22

3+
import io.jsonwebtoken.Claims;
34
import io.jsonwebtoken.ExpiredJwtException;
45
import io.jsonwebtoken.JwtParser;
56
import lombok.RequiredArgsConstructor;
@@ -14,7 +15,11 @@ public class JwtValidator {
1415

1516
public void validateAccessToken(String accessToken) {
1617
try {
17-
parseToken(accessToken);
18+
Claims claims = parseToken(accessToken);
19+
String issuer = claims.getIssuer();
20+
if (issuer.equals(JwtType.RT.toString())) {
21+
throw new UnauthorizedException(ErrorMessage.INVALID_ACCESS_TOKEN_VALUE);
22+
}
1823
} catch (ExpiredJwtException e) {
1924
throw new UnauthorizedException(ErrorMessage.EXPIRED_ACCESS_TOKEN);
2025
} catch (Exception e) {
@@ -24,7 +29,11 @@ public void validateAccessToken(String accessToken) {
2429

2530
public void validateRefreshToken(String refreshToken) {
2631
try {
27-
parseToken(refreshToken);
32+
Claims claims = parseToken(refreshToken);
33+
String issuer = claims.getIssuer();
34+
if (issuer.equals(JwtType.AT.toString())) {
35+
throw new UnauthorizedException(ErrorMessage.INVALID_REFRESH_TOKEN_VALUE);
36+
}
2837
} catch (ExpiredJwtException e) {
2938
throw new UnauthorizedException(ErrorMessage.EXPIRED_REFRESH_TOKEN);
3039
} catch (Exception e) {
@@ -38,8 +47,9 @@ public void equalsRefreshToken(String refreshToken, String storedRefreshToken) {
3847
}
3948
}
4049

41-
private void parseToken(String token) {
50+
private Claims parseToken(String token) {
4251
JwtParser jwtParser = jwtGenerator.getJwtParser();
43-
jwtParser.parseClaimsJws(token);
52+
return jwtParser.parseClaimsJws(token)
53+
.getBody();
4454
}
4555
}

0 commit comments

Comments
 (0)