535 if (newClient.getSoftwareStatement() != null) {
541 JWTClaimsSet claimSet = newClient.getSoftwareStatement().getJWTClaimsSet();
542 for (String claim : claimSet.getClaims().keySet()) {
544 case SOFTWARE_STATEMENT:
545 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't include another software statement", HttpStatus.BAD_REQUEST);
546 case CLAIMS_REDIRECT_URIS:
547 newClient.setClaimsRedirectUris(Sets.newHashSet(claimSet.getStringListClaim(claim)));
549 case CLIENT_SECRET_EXPIRES_AT:
550 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't include a client secret expiration time", HttpStatus.BAD_REQUEST);
551 case CLIENT_ID_ISSUED_AT:
552 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't include a client ID issuance time", HttpStatus.BAD_REQUEST);
553 case REGISTRATION_CLIENT_URI:
554 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't include a client configuration endpoint", HttpStatus.BAD_REQUEST);
555 case REGISTRATION_ACCESS_TOKEN:
556 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't include a client registration access token", HttpStatus.BAD_REQUEST);
558 newClient.setRequestUris(Sets.newHashSet(claimSet.getStringListClaim(claim)));
560 case POST_LOGOUT_REDIRECT_URIS:
561 newClient.setPostLogoutRedirectUris(Sets.newHashSet(claimSet.getStringListClaim(claim)));
563 case INITIATE_LOGIN_URI:
564 newClient.setInitiateLoginUri(claimSet.getStringClaim(claim));
566 case DEFAULT_ACR_VALUES:
567 newClient.setDefaultACRvalues(Sets.newHashSet(claimSet.getStringListClaim(claim)));
569 case REQUIRE_AUTH_TIME:
570 newClient.setRequireAuthTime(claimSet.getBooleanClaim(claim));
572 case DEFAULT_MAX_AGE:
573 newClient.setDefaultMaxAge(claimSet.getIntegerClaim(claim));
575 case TOKEN_ENDPOINT_AUTH_SIGNING_ALG:
576 newClient.setTokenEndpointAuthSigningAlg(JWSAlgorithm.parse(claimSet.getStringClaim(claim)));
578 case ID_TOKEN_ENCRYPTED_RESPONSE_ENC:
579 newClient.setIdTokenEncryptedResponseEnc(EncryptionMethod.parse(claimSet.getStringClaim(claim)));
581 case ID_TOKEN_ENCRYPTED_RESPONSE_ALG:
582 newClient.setIdTokenEncryptedResponseAlg(JWEAlgorithm.parse(claimSet.getStringClaim(claim)));
584 case ID_TOKEN_SIGNED_RESPONSE_ALG:
585 newClient.setIdTokenSignedResponseAlg(JWSAlgorithm.parse(claimSet.getStringClaim(claim)));
587 case USERINFO_ENCRYPTED_RESPONSE_ENC:
588 newClient.setUserInfoEncryptedResponseEnc(EncryptionMethod.parse(claimSet.getStringClaim(claim)));
590 case USERINFO_ENCRYPTED_RESPONSE_ALG:
591 newClient.setUserInfoEncryptedResponseAlg(JWEAlgorithm.parse(claimSet.getStringClaim(claim)));
593 case USERINFO_SIGNED_RESPONSE_ALG:
594 newClient.setUserInfoSignedResponseAlg(JWSAlgorithm.parse(claimSet.getStringClaim(claim)));
596 case REQUEST_OBJECT_SIGNING_ALG:
597 newClient.setRequestObjectSigningAlg(JWSAlgorithm.parse(claimSet.getStringClaim(claim)));
600 newClient.setSubjectType(SubjectType.getByValue(claimSet.getStringClaim(claim)));
602 case SECTOR_IDENTIFIER_URI:
603 newClient.setSectorIdentifierUri(claimSet.getStringClaim(claim));
605 case APPLICATION_TYPE:
606 newClient.setApplicationType(AppType.getByValue(claimSet.getStringClaim(claim)));
609 newClient.setJwksUri(claimSet.getStringClaim(claim));
612 newClient.setJwks(JWKSet.parse(claimSet.getJSONObjectClaim(claim).toJSONString()));
615 newClient.setPolicyUri(claimSet.getStringClaim(claim));
618 newClient.setResponseTypes(Sets.newHashSet(claimSet.getStringListClaim(claim)));
621 newClient.setGrantTypes(Sets.newHashSet(claimSet.getStringListClaim(claim)));
624 newClient.setScope(OAuth2Utils.parseParameterList(claimSet.getStringClaim(claim)));
626 case TOKEN_ENDPOINT_AUTH_METHOD:
627 newClient.setTokenEndpointAuthMethod(AuthMethod.getByValue(claimSet.getStringClaim(claim)));
630 newClient.setTosUri(claimSet.getStringClaim(claim));
633 newClient.setContacts(Sets.newHashSet(claimSet.getStringListClaim(claim)));
636 newClient.setLogoUri(claimSet.getStringClaim(claim));
639 newClient.setClientUri(claimSet.getStringClaim(claim));
642 newClient.setClientName(claimSet.getStringClaim(claim));
645 newClient.setRedirectUris(Sets.newHashSet(claimSet.getStringListClaim(claim)));
648 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't contain client secret", HttpStatus.BAD_REQUEST);
650 throw new ValidationException(
"invalid_client_metadata",
"Software statement can't contain client ID", HttpStatus.BAD_REQUEST);
653 logger.warn(
"Software statement contained unknown field: " + claim +
" with value " + claimSet.getClaim(claim));
659 }
catch (ParseException e) {
660 throw new ValidationException(
"invalid_client_metadata",
"Software statement claims didn't parse", HttpStatus.BAD_REQUEST);
663 throw new ValidationException(
"invalid_client_metadata",
"Software statement rejected by validator", HttpStatus.BAD_REQUEST);
AssertionValidator assertionValidator
Definition: ClientAPI.java:141
static final Logger logger
Definition: ClientAPI.java:221
boolean isValid(JWT assertion)