Streamline OAuth2 resource server auto-config class conditions

Fixes gh-22233
This commit is contained in:
Andy Wilkinson
2020-07-07 12:22:27 +01:00
parent b8bc219b25
commit 1b85ce0769
3 changed files with 14 additions and 12 deletions

View File

@@ -50,7 +50,6 @@ import org.springframework.security.oauth2.jwt.JwtDecoder;
import org.springframework.security.oauth2.jwt.JwtIssuerValidator;
import org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken;
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider;
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector;
import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter;
import org.springframework.security.web.FilterChainProxy;
@@ -262,21 +261,25 @@ class OAuth2ResourceServerAutoConfigurationTests {
}
@Test
void autoConfigurationShouldBeConditionalOnJwtAuthenticationTokenClass() {
void autoConfigurationShouldBeConditionalOnResourceServerClass() {
this.contextRunner
.withPropertyValues("spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com")
.withUserConfiguration(JwtDecoderConfig.class)
.withClassLoader(new FilteredClassLoader(JwtAuthenticationToken.class))
.run((context) -> assertThat(getBearerTokenFilter(context)).isNull());
.withClassLoader(new FilteredClassLoader(BearerTokenAuthenticationToken.class)).run((context) -> {
assertThat(context).doesNotHaveBean(OAuth2ResourceServerAutoConfiguration.class);
assertThat(getBearerTokenFilter(context)).isNull();
});
}
@Test
void autoConfigurationShouldBeConditionalOnJwtDecoderClass() {
void autoConfigurationForJwtShouldBeConditionalOnJwtDecoderClass() {
this.contextRunner
.withPropertyValues("spring.security.oauth2.resourceserver.jwt.jwk-set-uri=https://jwk-set-uri.com")
.withUserConfiguration(JwtDecoderConfig.class)
.withClassLoader(new FilteredClassLoader(JwtDecoder.class))
.run((context) -> assertThat(getBearerTokenFilter(context)).isNull());
.withClassLoader(new FilteredClassLoader(JwtDecoder.class)).run((context) -> {
assertThat(context).hasSingleBean(OAuth2ResourceServerAutoConfiguration.class);
assertThat(getBearerTokenFilter(context)).isNull();
});
}
@Test