From d0de8d40dd851bea27d0f2d9b006d08b89d601ab Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Tue, 10 Oct 2017 14:01:49 -0500 Subject: [PATCH] WebFilterChainFilter -> WebFilterChainProxy Issue gh-4615 --- .../reactive/WebFluxSecurityConfiguration.java | 6 +++--- .../reactive/EnableWebFluxSecurityTests.java | 14 +++++--------- .../config/web/server/FormLoginTests.java | 4 ++-- .../config/web/server/HttpSecurityTests.java | 4 ++-- .../sample/HelloWebfluxFnApplicationTests.java | 5 ++--- ...ainFilter.java => WebFilterChainProxy.java} | 18 +++++++----------- .../reactive/server/WebTestClientBuilder.java | 5 ++--- 7 files changed, 23 insertions(+), 33 deletions(-) rename webflux/src/main/java/org/springframework/security/web/server/{WebFilterChainFilter.java => WebFilterChainProxy.java} (68%) diff --git a/config/src/main/java/org/springframework/security/config/annotation/web/reactive/WebFluxSecurityConfiguration.java b/config/src/main/java/org/springframework/security/config/annotation/web/reactive/WebFluxSecurityConfiguration.java index d1ee57004b..63438e8637 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/web/reactive/WebFluxSecurityConfiguration.java +++ b/config/src/main/java/org/springframework/security/config/annotation/web/reactive/WebFluxSecurityConfiguration.java @@ -23,7 +23,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.security.config.web.server.HttpSecurity; import org.springframework.security.web.server.SecurityWebFilterChain; -import org.springframework.security.web.server.WebFilterChainFilter; +import org.springframework.security.web.server.WebFilterChainProxy; import org.springframework.util.ObjectUtils; import java.util.Arrays; @@ -49,8 +49,8 @@ public class WebFluxSecurityConfiguration { @Bean(SPRING_SECURITY_WEBFILTERCHAINFILTER_BEAN_NAME) @Order(value = WEB_FILTER_CHAIN_FILTER_ORDER) - public WebFilterChainFilter springSecurityWebFilterChainFilter() { - return WebFilterChainFilter.fromSecurityWebFilterChainsList(getSecurityWebFilterChains()); + public WebFilterChainProxy springSecurityWebFilterChainFilter() { + return WebFilterChainProxy.fromSecurityWebFilterChainsList(getSecurityWebFilterChains()); } private List getSecurityWebFilterChains() { diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/reactive/EnableWebFluxSecurityTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/reactive/EnableWebFluxSecurityTests.java index 3cf3463fc6..8ce2316730 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/reactive/EnableWebFluxSecurityTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/reactive/EnableWebFluxSecurityTests.java @@ -35,7 +35,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.test.web.reactive.server.WebTestClientBuilder; import org.springframework.security.web.server.SecurityWebFilterChain; -import org.springframework.security.web.server.WebFilterChainFilter; +import org.springframework.security.web.server.WebFilterChainProxy; import org.springframework.security.web.server.util.matcher.PathPatternParserServerWebExchangeMatcher; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.reactive.server.FluxExchangeResult; @@ -60,8 +60,7 @@ import static org.springframework.web.reactive.function.client.ExchangeFilterFun public class EnableWebFluxSecurityTests { @RunWith(SpringRunner.class) public static class Defaults { - @Autowired - WebFilterChainFilter springSecurityFilterChain; + @Autowired WebFilterChainProxy springSecurityFilterChain; @Test public void defaultRequiresAuthentication() { @@ -150,8 +149,7 @@ public class EnableWebFluxSecurityTests { @RunWith(SpringRunner.class) public static class CustomPasswordEncoder { - @Autowired - WebFilterChainFilter springSecurityFilterChain; + @Autowired WebFilterChainProxy springSecurityFilterChain; @Test public void passwordEncoderBeanIsUsed() { @@ -196,8 +194,7 @@ public class EnableWebFluxSecurityTests { @RunWith(SpringRunner.class) public static class FormLoginTests { - @Autowired - WebFilterChainFilter springSecurityFilterChain; + @Autowired WebFilterChainProxy springSecurityFilterChain; @Test public void formLoginWorks() { WebTestClient client = WebTestClientBuilder.bindToWebFilters( @@ -238,8 +235,7 @@ public class EnableWebFluxSecurityTests { @RunWith(SpringRunner.class) public static class MultiHttpSecurity { - @Autowired - WebFilterChainFilter springSecurityFilterChain; + @Autowired WebFilterChainProxy springSecurityFilterChain; @Test public void multiWorks() { diff --git a/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java b/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java index fbeae355ea..7a94dcadc3 100644 --- a/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java +++ b/config/src/test/java/org/springframework/security/config/web/server/FormLoginTests.java @@ -29,7 +29,7 @@ import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.htmlunit.server.WebTestClientHtmlUnitDriverBuilder; import org.springframework.security.test.web.reactive.server.WebTestClientBuilder; import org.springframework.security.web.server.SecurityWebFilterChain; -import org.springframework.security.web.server.WebFilterChainFilter; +import org.springframework.security.web.server.WebFilterChainProxy; import org.springframework.stereotype.Controller; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.web.bind.annotation.GetMapping; @@ -104,7 +104,7 @@ public class FormLoginTests { WebTestClient webTestClient = WebTestClient .bindToController(new CustomLoginPageController(), new WebTestClientBuilder.Http200RestController()) - .webFilter(WebFilterChainFilter.fromSecurityWebFilterChains(securityWebFilter)) + .webFilter(WebFilterChainProxy.fromSecurityWebFilterChains(securityWebFilter)) .build(); WebDriver driver = WebTestClientHtmlUnitDriverBuilder diff --git a/config/src/test/java/org/springframework/security/config/web/server/HttpSecurityTests.java b/config/src/test/java/org/springframework/security/config/web/server/HttpSecurityTests.java index b2fcfd39b6..fb56ee1f02 100644 --- a/config/src/test/java/org/springframework/security/config/web/server/HttpSecurityTests.java +++ b/config/src/test/java/org/springframework/security/config/web/server/HttpSecurityTests.java @@ -25,7 +25,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.springframework.security.authentication.ReactiveAuthenticationManager; import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.test.web.reactive.server.WebTestClientBuilder; -import org.springframework.security.web.server.WebFilterChainFilter; +import org.springframework.security.web.server.WebFilterChainProxy; import org.springframework.security.web.server.context.SecurityContextRepository; import org.springframework.security.web.server.context.WebSessionSecurityContextRepository; import org.springframework.test.web.reactive.server.EntityExchangeResult; @@ -116,7 +116,7 @@ public class HttpSecurityTests { } private WebTestClient buildClient() { - WebFilterChainFilter springSecurityFilterChain = WebFilterChainFilter.fromSecurityWebFilterChains( + WebFilterChainProxy springSecurityFilterChain = WebFilterChainProxy.fromSecurityWebFilterChains( this.http.build()); return WebTestClientBuilder.bindToWebFilters(springSecurityFilterChain).build(); } diff --git a/samples/javaconfig/hellowebfluxfn/src/test/java/sample/HelloWebfluxFnApplicationTests.java b/samples/javaconfig/hellowebfluxfn/src/test/java/sample/HelloWebfluxFnApplicationTests.java index 7ee2a92270..5011d938c6 100644 --- a/samples/javaconfig/hellowebfluxfn/src/test/java/sample/HelloWebfluxFnApplicationTests.java +++ b/samples/javaconfig/hellowebfluxfn/src/test/java/sample/HelloWebfluxFnApplicationTests.java @@ -24,7 +24,7 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.security.web.server.WebFilterChainFilter; +import org.springframework.security.web.server.WebFilterChainProxy; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; @@ -46,8 +46,7 @@ import static org.springframework.web.reactive.function.client.ExchangeFilterFun public class HelloWebfluxFnApplicationTests { @Autowired RouterFunction routerFunction; - @Autowired - WebFilterChainFilter springSecurityFilterChain; + @Autowired WebFilterChainProxy springSecurityFilterChain; WebTestClient rest; diff --git a/webflux/src/main/java/org/springframework/security/web/server/WebFilterChainFilter.java b/webflux/src/main/java/org/springframework/security/web/server/WebFilterChainProxy.java similarity index 68% rename from webflux/src/main/java/org/springframework/security/web/server/WebFilterChainFilter.java rename to webflux/src/main/java/org/springframework/security/web/server/WebFilterChainProxy.java index fe236b294d..1dfc31f2d1 100644 --- a/webflux/src/main/java/org/springframework/security/web/server/WebFilterChainFilter.java +++ b/webflux/src/main/java/org/springframework/security/web/server/WebFilterChainProxy.java @@ -16,12 +16,8 @@ package org.springframework.security.web.server; import java.util.Arrays; -import java.util.Iterator; import java.util.List; -import java.util.function.Function; -import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatcher; -import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatcherEntry; import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatchers; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; @@ -36,10 +32,10 @@ import reactor.core.publisher.Mono; * @author Rob Winch * @since 5.0 */ -public class WebFilterChainFilter implements WebFilter { +public class WebFilterChainProxy implements WebFilter { private final Flux filters; - public WebFilterChainFilter(Flux filters) { + public WebFilterChainProxy(Flux filters) { this.filters = filters; } @@ -56,15 +52,15 @@ public class WebFilterChainFilter implements WebFilter { .flatMap( securedChain -> securedChain.filter(exchange)); } - public static WebFilterChainFilter fromWebFiltersList(List filters) { - return new WebFilterChainFilter(Flux.just(new MatcherSecurityWebFilterChain(ServerWebExchangeMatchers.anyExchange(), filters))); + public static WebFilterChainProxy fromWebFiltersList(List filters) { + return new WebFilterChainProxy(Flux.just(new MatcherSecurityWebFilterChain(ServerWebExchangeMatchers.anyExchange(), filters))); } - public static WebFilterChainFilter fromSecurityWebFilterChainsList(List securityWebFilterChains) { - return new WebFilterChainFilter(Flux.fromIterable(securityWebFilterChains)); + public static WebFilterChainProxy fromSecurityWebFilterChainsList(List securityWebFilterChains) { + return new WebFilterChainProxy(Flux.fromIterable(securityWebFilterChains)); } - public static WebFilterChainFilter fromSecurityWebFilterChains(SecurityWebFilterChain... securityWebFilterChains) { + public static WebFilterChainProxy fromSecurityWebFilterChains(SecurityWebFilterChain... securityWebFilterChains) { return fromSecurityWebFilterChainsList(Arrays.asList(securityWebFilterChains)); } } diff --git a/webflux/src/test/java/org/springframework/security/test/web/reactive/server/WebTestClientBuilder.java b/webflux/src/test/java/org/springframework/security/test/web/reactive/server/WebTestClientBuilder.java index bcbc9abc84..4e9298b772 100644 --- a/webflux/src/test/java/org/springframework/security/test/web/reactive/server/WebTestClientBuilder.java +++ b/webflux/src/test/java/org/springframework/security/test/web/reactive/server/WebTestClientBuilder.java @@ -17,14 +17,13 @@ package org.springframework.security.test.web.reactive.server; import org.springframework.http.HttpStatus; import org.springframework.security.web.server.SecurityWebFilterChain; -import org.springframework.security.web.server.WebFilterChainFilter; +import org.springframework.security.web.server.WebFilterChainProxy; import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient.Builder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.server.WebFilter; -import reactor.core.publisher.Flux; /** * Provides a convenient mechanism for running {@link WebTestClient} against @@ -41,7 +40,7 @@ public class WebTestClientBuilder { } public static Builder bindToWebFilters(SecurityWebFilterChain securityWebFilterChain) { - return bindToWebFilters(WebFilterChainFilter.fromSecurityWebFilterChains(securityWebFilterChain)); + return bindToWebFilters(WebFilterChainProxy.fromSecurityWebFilterChains(securityWebFilterChain)); } @RestController