in src/main/java/com/epam/aidial/auth/helper/services/keycloak/KeyCloakAuthProvider.java [52:65]
public UserInfoDto getUserInfo(String accessToken) throws Exception {
final DecodedJWT decodedJwt = JWT.decode(accessToken);
verifyJwtToken(decodedJwt);
Claim idpClaim = decodedJwt.getClaim("idp");
Claim idpAliasClaim = decodedJwt.getClaim("idpAlias");
if (Utils.isClaimMissing(idpClaim) || Utils.isClaimMissing(idpAliasClaim)) {
return fromKeyCloakToken(decodedJwt);
}
IdentityProvider identityProvider = IdentityProviderFactory.createIdentityProvider(idpClaim.asString());
String idpAccessToken = exchangeToken(accessToken, idpAliasClaim.asString());
UserInfoDto userInfo = identityProvider.getUserInfo(idpAccessToken);
userInfo.setSub(decodedJwt.getSubject());
return userInfo;
}