62 JWSInput jws =
new JWSInput(token);
66 SignatureProvider signatureProvider =
session.
getProvider(SignatureProvider.class, signatureAlgorithm);
67 if (signatureProvider == null) {
71 String kid = jws.getHeader().getKeyId();
74 logger.debugf(
"KID is null in token. Using the realm active key to verify token signature.");
78 boolean valid = signatureProvider.verifier(kid).verify(jws.getEncodedSignatureInput().getBytes(
"UTF-8"), jws.getSignature());
79 return valid ? jws.readJsonContent(clazz) : null;
80 }
catch (Exception e) {
81 logger.debug(
"Failed to decode token", e);
KeycloakContext getContext()
String signatureAlgorithm(TokenCategory category)
Definition: DefaultTokenManager.java:87
< T extends Provider > T getProvider(Class< T > clazz)
final KeycloakSession session
Definition: DefaultTokenManager.java:38
static final Logger logger
Definition: DefaultTokenManager.java:34
KeyWrapper getActiveKey(RealmModel realm, KeyUse use, String algorithm)