Merge branch '2.7.x'

Closes gh-31455
pull/31456/head
Stephane Nicoll 2 years ago
commit cb22905944

@ -113,10 +113,9 @@ class OAuth2ResourceServerAutoConfigurationTests {
.withPropertyValues("spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com") .withPropertyValues("spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com")
.run((context) -> { .run((context) -> {
JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class); JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class);
Object processor = ReflectionTestUtils.getField(jwtDecoder, "jwtProcessor"); assertThat(jwtDecoder).extracting("jwtProcessor.jwsKeySelector.jwsAlgs")
Object keySelector = ReflectionTestUtils.getField(processor, "jwsKeySelector"); .asInstanceOf(InstanceOfAssertFactories.collection(JWSAlgorithm.class))
assertThat(keySelector).hasFieldOrPropertyWithValue("jwsAlgs", .containsExactlyInAnyOrder(JWSAlgorithm.RS256);
Collections.singleton(JWSAlgorithm.RS256));
}); });
} }
@ -127,9 +126,7 @@ class OAuth2ResourceServerAutoConfigurationTests {
"spring.security.oauth2.resourceserver.jwt.jws-algorithms=RS384") "spring.security.oauth2.resourceserver.jwt.jws-algorithms=RS384")
.run((context) -> { .run((context) -> {
JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class); JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class);
Object processor = ReflectionTestUtils.getField(jwtDecoder, "jwtProcessor"); assertThat(jwtDecoder).extracting("jwtProcessor.jwsKeySelector.jwsAlgs")
Object keySelector = ReflectionTestUtils.getField(processor, "jwsKeySelector");
assertThat(keySelector).extracting("jwsAlgs")
.asInstanceOf(InstanceOfAssertFactories.collection(JWSAlgorithm.class)) .asInstanceOf(InstanceOfAssertFactories.collection(JWSAlgorithm.class))
.containsExactlyInAnyOrder(JWSAlgorithm.RS384); .containsExactlyInAnyOrder(JWSAlgorithm.RS384);
assertThat(getBearerTokenFilter(context)).isNotNull(); assertThat(getBearerTokenFilter(context)).isNotNull();
@ -143,9 +140,7 @@ class OAuth2ResourceServerAutoConfigurationTests {
"spring.security.oauth2.resourceserver.jwt.jws-algorithms=RS256, RS384, RS512") "spring.security.oauth2.resourceserver.jwt.jws-algorithms=RS256, RS384, RS512")
.run((context) -> { .run((context) -> {
JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class); JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class);
Object processor = ReflectionTestUtils.getField(jwtDecoder, "jwtProcessor"); assertThat(jwtDecoder).extracting("jwtProcessor.jwsKeySelector.jwsAlgs")
Object keySelector = ReflectionTestUtils.getField(processor, "jwsKeySelector");
assertThat(keySelector).extracting("jwsAlgs")
.asInstanceOf(InstanceOfAssertFactories.collection(JWSAlgorithm.class)) .asInstanceOf(InstanceOfAssertFactories.collection(JWSAlgorithm.class))
.containsExactlyInAnyOrder(JWSAlgorithm.RS256, JWSAlgorithm.RS384, JWSAlgorithm.RS512); .containsExactlyInAnyOrder(JWSAlgorithm.RS256, JWSAlgorithm.RS384, JWSAlgorithm.RS512);
assertThat(getBearerTokenFilter(context)).isNotNull(); assertThat(getBearerTokenFilter(context)).isNotNull();
@ -443,11 +438,9 @@ class OAuth2ResourceServerAutoConfigurationTests {
.run((context) -> { .run((context) -> {
assertThat(context).hasSingleBean(JwtDecoder.class); assertThat(context).hasSingleBean(JwtDecoder.class);
JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class); JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class);
DelegatingOAuth2TokenValidator<Jwt> jwtValidator = (DelegatingOAuth2TokenValidator<Jwt>) ReflectionTestUtils assertThat(jwtDecoder).extracting("jwtValidator.tokenValidators")
.getField(jwtDecoder, "jwtValidator"); .asInstanceOf(InstanceOfAssertFactories.collection(OAuth2TokenValidator.class))
Collection<OAuth2TokenValidator<Jwt>> tokenValidators = (Collection<OAuth2TokenValidator<Jwt>>) ReflectionTestUtils .hasAtLeastOneElementOfType(JwtIssuerValidator.class);
.getField(jwtValidator, "tokenValidators");
assertThat(tokenValidators).hasAtLeastOneElementOfType(JwtIssuerValidator.class);
}); });
} }
@ -465,13 +458,11 @@ class OAuth2ResourceServerAutoConfigurationTests {
.run((context) -> { .run((context) -> {
assertThat(context).hasSingleBean(JwtDecoder.class); assertThat(context).hasSingleBean(JwtDecoder.class);
JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class); JwtDecoder jwtDecoder = context.getBean(JwtDecoder.class);
DelegatingOAuth2TokenValidator<Jwt> jwtValidator = (DelegatingOAuth2TokenValidator<Jwt>) ReflectionTestUtils assertThat(jwtDecoder).extracting("jwtValidator.tokenValidators")
.getField(jwtDecoder, "jwtValidator"); .asInstanceOf(InstanceOfAssertFactories.collection(OAuth2TokenValidator.class))
Collection<OAuth2TokenValidator<Jwt>> tokenValidators = (Collection<OAuth2TokenValidator<Jwt>>) ReflectionTestUtils .hasExactlyElementsOfTypes(JwtTimestampValidator.class)
.getField(jwtValidator, "tokenValidators"); .doesNotHaveAnyElementsOfTypes(JwtClaimValidator.class)
assertThat(tokenValidators).hasExactlyElementsOfTypes(JwtTimestampValidator.class); .doesNotHaveAnyElementsOfTypes(JwtIssuerValidator.class);
assertThat(tokenValidators).doesNotHaveAnyElementsOfTypes(JwtClaimValidator.class);
assertThat(tokenValidators).doesNotHaveAnyElementsOfTypes(JwtIssuerValidator.class);
}); });
} }
@ -536,10 +527,10 @@ class OAuth2ResourceServerAutoConfigurationTests {
assertThat(delegates).hasAtLeastOneElementOfType(JwtClaimValidator.class); assertThat(delegates).hasAtLeastOneElementOfType(JwtClaimValidator.class);
OAuth2TokenValidator<Jwt> delegatingValidator = delegates.stream() OAuth2TokenValidator<Jwt> delegatingValidator = delegates.stream()
.filter((v) -> v instanceof DelegatingOAuth2TokenValidator).findFirst().get(); .filter((v) -> v instanceof DelegatingOAuth2TokenValidator).findFirst().get();
Collection<OAuth2TokenValidator<Jwt>> nestedDelegates = (Collection<OAuth2TokenValidator<Jwt>>) ReflectionTestUtils
.getField(delegatingValidator, "tokenValidators");
if (issuerUri != null) { if (issuerUri != null) {
assertThat(nestedDelegates).hasAtLeastOneElementOfType(JwtIssuerValidator.class); assertThat(delegatingValidator).extracting("tokenValidators")
.asInstanceOf(InstanceOfAssertFactories.collection(OAuth2TokenValidator.class))
.hasAtLeastOneElementOfType(JwtIssuerValidator.class);
} }
} }

Loading…
Cancel
Save