Polish gh-6349
This commit is contained in:
		
							parent
							
								
									057ed616c4
								
							
						
					
					
						commit
						d878dbf30e
					
				| 
						 | 
				
			
			@ -55,9 +55,9 @@ public final class OidcIdTokenValidator implements OAuth2TokenValidator<Jwt> {
 | 
			
		|||
	public OAuth2TokenValidatorResult validate(Jwt idToken) {
 | 
			
		||||
		// 3.1.3.7  ID Token Validation
 | 
			
		||||
		// http://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation
 | 
			
		||||
		Map<String, Object> invalidClaims = validateRequiredClaims(idToken);
 | 
			
		||||
 | 
			
		||||
		if (!invalidClaims.isEmpty()){
 | 
			
		||||
		Map<String, Object> invalidClaims = validateRequiredClaims(idToken);
 | 
			
		||||
		if (!invalidClaims.isEmpty()) {
 | 
			
		||||
			return OAuth2TokenValidatorResult.failure(invalidIdToken(invalidClaims));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -121,13 +121,14 @@ public final class OidcIdTokenValidator implements OAuth2TokenValidator<Jwt> {
 | 
			
		|||
 | 
			
		||||
	private static OAuth2Error invalidIdToken(Map<String, Object> invalidClaims) {
 | 
			
		||||
		String claimsDetail = invalidClaims.entrySet().stream()
 | 
			
		||||
				.map(it -> it.getKey()+ "("+it.getValue()+")")
 | 
			
		||||
				.map(it -> it.getKey() + " (" + it.getValue() + ")")
 | 
			
		||||
				.collect(Collectors.joining(", "));
 | 
			
		||||
 | 
			
		||||
		return new OAuth2Error("invalid_id_token", "The ID Token contains invalid claims: "+claimsDetail, null);
 | 
			
		||||
		return new OAuth2Error("invalid_id_token",
 | 
			
		||||
				"The ID Token contains invalid claims: " + claimsDetail,
 | 
			
		||||
				"https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private static Map<String, Object>  validateRequiredClaims(Jwt idToken){
 | 
			
		||||
	private static Map<String, Object> validateRequiredClaims(Jwt idToken) {
 | 
			
		||||
		Map<String, Object> requiredClaims = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
		URL issuer = idToken.getIssuer();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,6 @@ public class OidcIdTokenValidatorTests {
 | 
			
		|||
				.hasSize(1)
 | 
			
		||||
				.extracting(OAuth2Error::getDescription)
 | 
			
		||||
				.allMatch(msg -> msg.contains(IdTokenClaimNames.ISS));
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			@ -194,17 +193,6 @@ public class OidcIdTokenValidatorTests {
 | 
			
		|||
				.allMatch(msg -> msg.contains(IdTokenClaimNames.EXP));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test(expected = IllegalArgumentException.class)
 | 
			
		||||
	public void validateIdTokenWhenNoClaimsThenHasErrors() {
 | 
			
		||||
		this.claims.remove(IdTokenClaimNames.ISS);
 | 
			
		||||
		this.claims.remove(IdTokenClaimNames.SUB);
 | 
			
		||||
		this.claims.remove(IdTokenClaimNames.AUD);
 | 
			
		||||
		this.issuedAt = null;
 | 
			
		||||
		this.expiresAt = null;
 | 
			
		||||
		assertThat(this.validateIdToken())
 | 
			
		||||
				.hasSize(1);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private Collection<OAuth2Error> validateIdToken() {
 | 
			
		||||
		Jwt idToken = new Jwt("token123", this.issuedAt, this.expiresAt, this.headers, this.claims);
 | 
			
		||||
		OidcIdTokenValidator validator = new OidcIdTokenValidator(this.registration.build());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue