in src/main/java/com/epam/digital/data/platform/restapi/core/service/JwtValidationService.java [79:98]
public <O> boolean isValid(Request<O> input) {
if (!jwtValidationEnabled) {
return true;
}
String accessToken = getTokenFromInput(input);
JWTClaimsSet jwtClaimsSet = getClaimsFromToken(accessToken);
if (isExpiredJwt(jwtClaimsSet)) {
throw new JwtExpiredException("JWT is expired");
}
String jwtIssuer = jwtClaimsSet.getIssuer();
String issuerRealm = jwtIssuer.substring(jwtIssuer.lastIndexOf("/") + 1);
if (keycloakConfigProperties.getRealms().contains(issuerRealm)) {
PublicKey keycloakPublicKey = allowedRealmsRepresentations.get(issuerRealm).getPublicKey();
return isVerifiedToken(accessToken, keycloakPublicKey);
} else {
throw new JwtValidationException("Issuer realm is not valid");
}
}