98             if (!Strings.isNullOrEmpty(nonce) && !nonceFromToken.endsWith(nonce)) {
    99                 LOG.error(
"ID Token has invalid nonce. Expected nonce: " + nonce + 
", nonce from token is: " + nonceFromToken);
   100                 throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_NONCE);
   103             if (!clientId.equalsIgnoreCase(audienceFromToken)) {
   105                 if (audAsList != null && audAsList.size() == 1) {
   106                     if (!clientId.equalsIgnoreCase(audAsList.get(0))) {
   107                         LOG.error(
"ID Token has invalid audience (string list). Expected audience: " + clientId + 
", audience from token is: " + audAsList);
   108                         throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_AUDIENCE);
   113                 boolean equalsWithSingleValuedArray = (
"[\"" + clientId + 
"\"]").equalsIgnoreCase(audienceFromToken);
   114                 if (!equalsWithSingleValuedArray) {
   115                     LOG.error(
"ID Token has invalid audience (single valued array). Expected audience: " + clientId + 
", audience from token is: " + audienceFromToken);
   116                     throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_AUDIENCE);
   121             final Date now = 
new Date();
   122             if (now.after(expiresAt)) {
   123                 LOG.error(
"ID Token is expired. (It is after " + now + 
").");
   124                 throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_EXPIRED);
   130                 throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_ISSUER);
   142                 signature = signerWithRefreshedKey.validate(
idToken);
   145                     LOG.error(
"ID Token signature is invalid.");
   146                     throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_SIGNATURE);
   151         } 
catch (Exception e) {
   152             LOG.error(e.getMessage(), e);
   153             throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_UNKNOWN);
 String getClaimAsString(String key)
Definition: JwtClaimSet.java:55
 
static final Logger LOG
Definition: Validator.java:29
 
RSASigner rsaSigner
Definition: Validator.java:34
 
JwtClaims getClaims()
Definition: JsonWebResponse.java:41
 
List< String > getClaimAsStringList(String key)
Definition: JwtClaimSet.java:81
 
RSAPublicKey refetchKey(String jwkUrl, String kid)
Definition: PublicOpKeyService.java:66
 
String getJwksUri()
Definition: OpenIdConfigurationResponse.java:289
 
Date getClaimAsDate(String key)
Definition: JwtClaimSet.java:103
 
final OpenIdConfigurationResponse discoveryResponse
Definition: Validator.java:32
 
final Jwt idToken
Definition: Validator.java:31
 
final PublicOpKeyService keyService
Definition: Validator.java:33
 
boolean validate(Jwt jwt)
Definition: AbstractJwsSigner.java:49
 
JwtHeader getHeader()
Definition: JsonWebResponse.java:33
 
static RSASigner createRSASigner(Jwt jwt, OpenIdConfigurationResponse discoveryResponse, PublicOpKeyService keyService)
Definition: Validator.java:62
 
String getIssuer()
Definition: OpenIdConfigurationResponse.java:156