1
1
package org .doorip .auth .jwt ;
2
2
3
+ import io .jsonwebtoken .Claims ;
3
4
import io .jsonwebtoken .ExpiredJwtException ;
4
5
import io .jsonwebtoken .JwtParser ;
5
6
import lombok .RequiredArgsConstructor ;
@@ -14,7 +15,11 @@ public class JwtValidator {
14
15
15
16
public void validateAccessToken (String accessToken ) {
16
17
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
+ }
18
23
} catch (ExpiredJwtException e ) {
19
24
throw new UnauthorizedException (ErrorMessage .EXPIRED_ACCESS_TOKEN );
20
25
} catch (Exception e ) {
@@ -24,7 +29,11 @@ public void validateAccessToken(String accessToken) {
24
29
25
30
public void validateRefreshToken (String refreshToken ) {
26
31
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
+ }
28
37
} catch (ExpiredJwtException e ) {
29
38
throw new UnauthorizedException (ErrorMessage .EXPIRED_REFRESH_TOKEN );
30
39
} catch (Exception e ) {
@@ -38,8 +47,9 @@ public void equalsRefreshToken(String refreshToken, String storedRefreshToken) {
38
47
}
39
48
}
40
49
41
- private void parseToken (String token ) {
50
+ private Claims parseToken (String token ) {
42
51
JwtParser jwtParser = jwtGenerator .getJwtParser ();
43
- jwtParser .parseClaimsJws (token );
52
+ return jwtParser .parseClaimsJws (token )
53
+ .getBody ();
44
54
}
45
55
}
0 commit comments