public IDTokenClaimsSet validate(final JWT idToken, final Nonce expectedNonce)
        throws BadJOSEException, JOSEException {

        BadJOSEException badJOSEException = null;
        JOSEException joseException = null;
        for (val idTokenValidator : idTokenValidators) {
            LOGGER.debug("Trying IDToken validator: {}", idTokenValidator);
            try {
                return idTokenValidator.validate(idToken, expectedNonce);
            } catch (final BadJOSEException e1) {
                LOGGER.debug(e1.getMessage(), e1);
                badJOSEException = e1;
            } catch (final JOSEException e2) {
                LOGGER.debug(e2.getMessage(), e2);
                joseException = e2;
            }
        }

        if (badJOSEException != null) {
            throw badJOSEException;
        } else if (joseException != null) {
            throw joseException;
        } else {
            throw new OidcTokenException("Unable to validate the ID token");
        }
    }
<p>validate.</p>

@param idToken a {@link JWT} object
@param expectedNonce a {@link Nonce} object
@return a {@link IDTokenClaimsSet} object
@throws BadJOSEException if any.
@throws JOSEException if any.
pac4j-oidc/src/main/java/org/pac4j/oidc/profile/creator/TokenValidator.java