Rename RouteFilter to WebFilterFactory
This commit is contained in:
@@ -139,7 +139,7 @@ spring:
|
||||
|
||||
This route would match if the request path was, for example: `/foo/1` or `/foo/bar`.
|
||||
|
||||
This predicate extracts the URI template variables (like `segment` defined in the example above) as a map of names and values and places it in the `ServerWebExchange.getAttributes()` with a key defined in `PathRoutePredicate.URL_PREDICATE_VARS_ATTR`. Those values are then available for use by <<gateway-route-filters,Route Filters>>
|
||||
This predicate extracts the URI template variables (like `segment` defined in the example above) as a map of names and values and places it in the `ServerWebExchange.getAttributes()` with a key defined in `PathRoutePredicate.URL_PREDICATE_VARS_ATTR`. Those values are then available for use by <<gateway-route-filters,WebFilter Factorys>>
|
||||
|
||||
=== Query Request Predicate Factory
|
||||
TODO: document Query Request Predicate Factory
|
||||
@@ -148,51 +148,51 @@ TODO: document Query Request Predicate Factory
|
||||
TODO: document RemoteAddr Request Predicate Factory
|
||||
|
||||
[[gateway-route-filters]]
|
||||
== Route Filters
|
||||
== WebFilter Factorys
|
||||
|
||||
Route filters allow the modification of the incoming HTTP request or outgoing HTTP response in some manner. Route filters are scoped to a particular route. Spring Cloud Gateway includes many built-in Route Filters.
|
||||
Route filters allow the modification of the incoming HTTP request or outgoing HTTP response in some manner. Route filters are scoped to a particular route. Spring Cloud Gateway includes many built-in WebFilter Factories.
|
||||
|
||||
=== AddRequestHeader Route Filter
|
||||
TODO: document AddRequestHeader Route Filter
|
||||
=== AddRequestHeader WebFilter Factory
|
||||
TODO: document AddRequestHeader WebFilter Factory
|
||||
|
||||
=== AddRequestParameter Route Filter
|
||||
TODO: document AddRequestParameter Route Filter
|
||||
=== AddRequestParameter WebFilter Factory
|
||||
TODO: document AddRequestParameter WebFilter Factory
|
||||
|
||||
=== AddResponseHeader Route Filter
|
||||
TODO: document AddResponseHeader Route Filter
|
||||
=== AddResponseHeader WebFilter Factory
|
||||
TODO: document AddResponseHeader WebFilter Factory
|
||||
|
||||
=== Hystrix Route Filter
|
||||
TODO: document Hystrix Route Filter
|
||||
=== Hystrix WebFilter Factory
|
||||
TODO: document Hystrix WebFilter Factory
|
||||
|
||||
=== PrefixPath Route Filter
|
||||
TODO: document PrefixPath Route Filter
|
||||
=== PrefixPath WebFilter Factory
|
||||
TODO: document PrefixPath WebFilter Factory
|
||||
|
||||
=== RedirectTo Route Filter
|
||||
TODO: document RedirectTo Route Filter
|
||||
=== RedirectTo WebFilter Factory
|
||||
TODO: document RedirectTo WebFilter Factory
|
||||
|
||||
=== RemoveNonProxyHeaders Route Filter
|
||||
TODO: document RemoveNonProxyHeaders Route Filter
|
||||
=== RemoveNonProxyHeaders WebFilter Factory
|
||||
TODO: document RemoveNonProxyHeaders WebFilter Factory
|
||||
|
||||
=== RemoveRequestHeader Route Filter
|
||||
TODO: document RemoveRequestHeader Route Filter
|
||||
=== RemoveRequestHeader WebFilter Factory
|
||||
TODO: document RemoveRequestHeader WebFilter Factory
|
||||
|
||||
=== RemoveResponseHeader Route Filter
|
||||
TODO: document RemoveResponseHeader Route Filter
|
||||
=== RemoveResponseHeader WebFilter Factory
|
||||
TODO: document RemoveResponseHeader WebFilter Factory
|
||||
|
||||
=== RewritePath Route Filter
|
||||
TODO: document RewritePath Route Filter
|
||||
=== RewritePath WebFilter Factory
|
||||
TODO: document RewritePath WebFilter Factory
|
||||
|
||||
=== SecureHeaders Route Filter
|
||||
TODO: document SecureHeaders Route Filter
|
||||
=== SecureHeaders WebFilter Factory
|
||||
TODO: document SecureHeaders WebFilter Factory
|
||||
|
||||
=== SetPath Route Filter
|
||||
TODO: document SetPath Route Filter
|
||||
=== SetPath WebFilter Factory
|
||||
TODO: document SetPath WebFilter Factory
|
||||
|
||||
=== SetResponseHeader Route Filter
|
||||
TODO: document SetResponseHeader Route Filter
|
||||
=== SetResponseHeader WebFilter Factory
|
||||
TODO: document SetResponseHeader WebFilter Factory
|
||||
|
||||
=== SetStatus Route Filter
|
||||
TODO: document SetStatus Route Filter
|
||||
=== SetStatus WebFilter Factory
|
||||
TODO: document SetStatus WebFilter Factory
|
||||
|
||||
== Global Filters
|
||||
|
||||
@@ -214,9 +214,9 @@ TODO: overview of writing custom integrations
|
||||
|
||||
TODO: document writing Custom Request Predicate Factorys
|
||||
|
||||
=== Writing Custom Route Filters
|
||||
=== Writing Custom WebFilter Factorys
|
||||
|
||||
TODO: document writing Custom Route Filters
|
||||
TODO: document writing Custom WebFilter Factorys
|
||||
|
||||
=== Writing Custom Global Filters
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.springframework.cloud.gateway.model.Route;
|
||||
import org.springframework.cloud.gateway.api.RouteLocator;
|
||||
import org.springframework.cloud.gateway.api.RouteWriter;
|
||||
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.WebFilterFactory;
|
||||
import org.springframework.cloud.gateway.handler.FilteringWebHandler;
|
||||
import org.springframework.cloud.gateway.support.NotFoundException;
|
||||
import org.springframework.cloud.gateway.support.RefreshRoutesEvent;
|
||||
@@ -60,18 +60,18 @@ public class GatewayEndpoint implements ApplicationEventPublisherAware {/*extend
|
||||
|
||||
private RouteLocator routeLocator;
|
||||
private List<GlobalFilter> globalFilters;
|
||||
private List<RouteFilter> routeFilters;
|
||||
private List<WebFilterFactory> webFilterFactories;
|
||||
private FilteringWebHandler filteringWebHandler;
|
||||
private RouteWriter routeWriter;
|
||||
private ApplicationEventPublisher publisher;
|
||||
|
||||
public GatewayEndpoint(RouteLocator routeLocator, List<GlobalFilter> globalFilters,
|
||||
List<RouteFilter> routeFilters, FilteringWebHandler filteringWebHandler,
|
||||
List<WebFilterFactory> webFilterFactories, FilteringWebHandler filteringWebHandler,
|
||||
RouteWriter routeWriter) {
|
||||
//super("gateway");
|
||||
this.routeLocator = routeLocator;
|
||||
this.globalFilters = globalFilters;
|
||||
this.routeFilters = routeFilters;
|
||||
this.webFilterFactories = webFilterFactories;
|
||||
this.filteringWebHandler = filteringWebHandler;
|
||||
this.routeWriter = routeWriter;
|
||||
}
|
||||
@@ -99,7 +99,7 @@ public class GatewayEndpoint implements ApplicationEventPublisherAware {/*extend
|
||||
|
||||
@GetMapping("/routefilters")
|
||||
public Map<String, Object> routefilers() {
|
||||
return getNamesToOrders(this.routeFilters);
|
||||
return getNamesToOrders(this.webFilterFactories);
|
||||
}
|
||||
|
||||
private <T> Map<String, Object> getNamesToOrders(List<T> list) {
|
||||
|
||||
@@ -33,22 +33,22 @@ import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter;
|
||||
import org.springframework.cloud.gateway.filter.NettyRoutingFilter;
|
||||
import org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter;
|
||||
import org.springframework.cloud.gateway.filter.WriteResponseFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestHeaderRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestParameterRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.AddResponseHeaderRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.HystrixRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.PrefixPathRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RedirectToRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveRequestHeaderRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveResponseHeaderRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestHeaderWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestParameterWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.AddResponseHeaderWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.HystrixWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.PrefixPathWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.RedirectToWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveRequestHeaderWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveResponseHeaderWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.SetResponseHeaderWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.WebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.SecureHeadersProperties;
|
||||
import org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.SetPathRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.SetResponseHeaderRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.SetStatusRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.SetPathWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.SetStatusWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.handler.FilteringWebHandler;
|
||||
import org.springframework.cloud.gateway.handler.NettyRoutingWebHandler;
|
||||
import org.springframework.cloud.gateway.handler.RequestPredicateHandlerMapping;
|
||||
@@ -113,8 +113,8 @@ public class GatewayAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public FilteringWebHandler filteringWebHandler(GatewayProperties properties, List<GlobalFilter> globalFilters,
|
||||
List<RouteFilter> routeFilters) {
|
||||
return new FilteringWebHandler(properties, globalFilters, routeFilters);
|
||||
List<WebFilterFactory> webFilterFactories) {
|
||||
return new FilteringWebHandler(properties, globalFilters, webFilterFactories);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -213,77 +213,77 @@ public class GatewayAutoConfiguration {
|
||||
// Filter Factory beans
|
||||
|
||||
@Bean
|
||||
public AddRequestHeaderRouteFilter addRequestHeaderRouteFilter() {
|
||||
return new AddRequestHeaderRouteFilter();
|
||||
public AddRequestHeaderWebFilterFactory addRequestHeaderWebFilterFactory() {
|
||||
return new AddRequestHeaderWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public AddRequestParameterRouteFilter addRequestParameterRouteFilter() {
|
||||
return new AddRequestParameterRouteFilter();
|
||||
public AddRequestParameterWebFilterFactory addRequestParameterWebFilterFactory() {
|
||||
return new AddRequestParameterWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public AddResponseHeaderRouteFilter addResponseHeaderRouteFilter() {
|
||||
return new AddResponseHeaderRouteFilter();
|
||||
public AddResponseHeaderWebFilterFactory addResponseHeaderWebFilterFactory() {
|
||||
return new AddResponseHeaderWebFilterFactory();
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnClass({HystrixObservableCommand.class, RxReactiveStreams.class})
|
||||
protected static class HystrixConfiguration {
|
||||
@Bean
|
||||
public HystrixRouteFilter hystrixRouteFilter() {
|
||||
return new HystrixRouteFilter();
|
||||
public HystrixWebFilterFactory hystrixWebFilterFactory() {
|
||||
return new HystrixWebFilterFactory();
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PrefixPathRouteFilter prefixPathRouteFilter() {
|
||||
return new PrefixPathRouteFilter();
|
||||
public PrefixPathWebFilterFactory prefixPathWebFilterFactory() {
|
||||
return new PrefixPathWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RedirectToRouteFilter redirectToRouteFilter() {
|
||||
return new RedirectToRouteFilter();
|
||||
public RedirectToWebFilterFactory redirectToWebFilterFactory() {
|
||||
return new RedirectToWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RemoveNonProxyHeadersRouteFilter removeNonProxyHeadersRouteFilter() {
|
||||
return new RemoveNonProxyHeadersRouteFilter();
|
||||
public RemoveNonProxyHeadersWebFilterFactory removeNonProxyHeadersWebFilterFactory() {
|
||||
return new RemoveNonProxyHeadersWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RemoveRequestHeaderRouteFilter removeRequestHeaderRouteFilter() {
|
||||
return new RemoveRequestHeaderRouteFilter();
|
||||
public RemoveRequestHeaderWebFilterFactory removeRequestHeaderWebFilterFactory() {
|
||||
return new RemoveRequestHeaderWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RemoveResponseHeaderRouteFilter removeResponseHeaderRouteFilter() {
|
||||
return new RemoveResponseHeaderRouteFilter();
|
||||
public RemoveResponseHeaderWebFilterFactory removeResponseHeaderWebFilterFactory() {
|
||||
return new RemoveResponseHeaderWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public RewritePathRouteFilter rewritePathRouteFilter() {
|
||||
return new RewritePathRouteFilter();
|
||||
public RewritePathWebFilterFactory rewritePathWebFilterFactory() {
|
||||
return new RewritePathWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SetPathRouteFilter setPathRouteFilter() {
|
||||
return new SetPathRouteFilter();
|
||||
public SetPathWebFilterFactory setPathWebFilterFactory() {
|
||||
return new SetPathWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SecureHeadersRouteFilter secureHeadersRouteFilter(SecureHeadersProperties properties) {
|
||||
return new SecureHeadersRouteFilter(properties);
|
||||
public SecureHeadersWebFilterFactory secureHeadersWebFilterFactory(SecureHeadersProperties properties) {
|
||||
return new SecureHeadersWebFilterFactory(properties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SetResponseHeaderRouteFilter setResponseHeaderRouteFilter() {
|
||||
return new SetResponseHeaderRouteFilter();
|
||||
public SetResponseHeaderWebFilterFactory setResponseHeaderWebFilterFactory() {
|
||||
return new SetResponseHeaderWebFilterFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SetStatusRouteFilter setStatusRouteFilter() {
|
||||
return new SetStatusRouteFilter();
|
||||
public SetStatusWebFilterFactory setStatusWebFilterFactory() {
|
||||
return new SetStatusWebFilterFactory();
|
||||
}
|
||||
|
||||
//TODO: control creation
|
||||
@@ -298,9 +298,9 @@ public class GatewayAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public GatewayEndpoint gatewayEndpoint(RouteLocator routeLocator, List<GlobalFilter> globalFilters,
|
||||
List<RouteFilter> routeFilters, FilteringWebHandler filteringWebHandler,
|
||||
List<WebFilterFactory> webFilterFactories, FilteringWebHandler filteringWebHandler,
|
||||
RouteWriter routeWriter) {
|
||||
return new GatewayEndpoint(routeLocator, globalFilters, routeFilters, filteringWebHandler, routeWriter);
|
||||
return new GatewayEndpoint(routeLocator, globalFilters, webFilterFactories, filteringWebHandler, routeWriter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import javax.validation.constraints.NotNull;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.cloud.gateway.model.FilterDefinition;
|
||||
import org.springframework.cloud.gateway.model.Route;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersWebFilterFactory;
|
||||
|
||||
import static org.springframework.cloud.gateway.support.NameUtils.normalizeFilterName;
|
||||
|
||||
@@ -51,7 +51,7 @@ public class GatewayProperties {
|
||||
private ArrayList<FilterDefinition> loadDefaults() {
|
||||
ArrayList<FilterDefinition> defaults = new ArrayList<>();
|
||||
FilterDefinition definition = new FilterDefinition();
|
||||
definition.setName(normalizeFilterName(RemoveNonProxyHeadersRouteFilter.class));
|
||||
definition.setName(normalizeFilterName(RemoveNonProxyHeadersWebFilterFactory.class));
|
||||
defaults.add(definition);
|
||||
return defaults;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.Collections;
|
||||
|
||||
import org.springframework.cloud.client.discovery.DiscoveryClient;
|
||||
import org.springframework.cloud.gateway.api.RouteLocator;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathRouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathWebFilterFactory;
|
||||
import org.springframework.cloud.gateway.handler.predicate.PathRequestPredicateFactory;
|
||||
import org.springframework.cloud.gateway.model.FilterDefinition;
|
||||
import org.springframework.cloud.gateway.model.PredicateDefinition;
|
||||
@@ -66,7 +66,7 @@ public class DiscoveryClientRouteLocator implements RouteLocator {
|
||||
|
||||
// add a filter that removes /serviceId by default
|
||||
FilterDefinition filter = new FilterDefinition();
|
||||
filter.setName(normalizeFilterName(RewritePathRouteFilter.class));
|
||||
filter.setName(normalizeFilterName(RewritePathWebFilterFactory.class));
|
||||
String regex = "/" + serviceId + "/(?<remaining>.*)";
|
||||
String replacement = "/${remaining}";
|
||||
filter.setArgs(regex, replacement);
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class AddRequestHeaderRouteFilter implements RouteFilter {
|
||||
public class AddRequestHeaderWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -31,7 +31,7 @@ import org.springframework.web.server.WebFilter;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class AddRequestParameterRouteFilter implements RouteFilter {
|
||||
public class AddRequestParameterWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -22,7 +22,7 @@ import org.springframework.web.server.WebFilter;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class AddResponseHeaderRouteFilter implements RouteFilter {
|
||||
public class AddResponseHeaderWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -33,7 +33,7 @@ import rx.Subscription;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class HystrixRouteFilter implements RouteFilter {
|
||||
public class HystrixWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -23,7 +23,7 @@ import org.springframework.web.server.WebFilter;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class PrefixPathRouteFilter implements RouteFilter {
|
||||
public class PrefixPathWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -34,7 +34,7 @@ import reactor.core.publisher.Mono;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class RedirectToRouteFilter implements RouteFilter {
|
||||
public class RedirectToWebFilterFactory implements WebFilterFactory {
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
validate(2, args);
|
||||
@@ -44,7 +44,7 @@ import java.util.List;
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
@ConfigurationProperties("spring.cloud.gateway.filter.removeNonProxyHeaders")
|
||||
public class RemoveNonProxyHeadersRouteFilter implements RouteFilter {
|
||||
public class RemoveNonProxyHeadersWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
private static final String FAKE_HEADER = "_______force_______";
|
||||
public static final String[] DEFAULT_HEADERS_TO_REMOVE = new String[] {"Connection", "Keep-Alive",
|
||||
@@ -23,7 +23,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class RemoveRequestHeaderRouteFilter implements RouteFilter {
|
||||
public class RemoveRequestHeaderWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
private static final String FAKE_HEADER = "_______force_______";
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.springframework.web.server.WebFilter;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class RemoveResponseHeaderRouteFilter implements RouteFilter {
|
||||
public class RemoveResponseHeaderWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -23,7 +23,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class RewritePathRouteFilter implements RouteFilter {
|
||||
public class RewritePathWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -24,7 +24,7 @@ import org.springframework.web.server.WebFilter;
|
||||
* https://blog.appcanary.com/2017/http-security-headers.html
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class SecureHeadersRouteFilter implements RouteFilter {
|
||||
public class SecureHeadersWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
public static final String X_XSS_PROTECTION_HEADER = "X-Xss-Protection";
|
||||
public static final String STRICT_TRANSPORT_SECURITY_HEADER = "Strict-Transport-Security";
|
||||
@@ -37,7 +37,7 @@ public class SecureHeadersRouteFilter implements RouteFilter {
|
||||
|
||||
private final SecureHeadersProperties properties;
|
||||
|
||||
public SecureHeadersRouteFilter(SecureHeadersProperties properties) {
|
||||
public SecureHeadersWebFilterFactory(SecureHeadersProperties properties) {
|
||||
this.properties = properties;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ import static org.springframework.web.reactive.function.server.RouterFunctions.U
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class SetPathRouteFilter implements RouteFilter {
|
||||
public class SetPathWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -22,7 +22,7 @@ import org.springframework.web.server.WebFilter;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class SetResponseHeaderRouteFilter implements RouteFilter {
|
||||
public class SetResponseHeaderWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -28,7 +28,7 @@ import reactor.core.publisher.Mono;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class SetStatusRouteFilter implements RouteFilter {
|
||||
public class SetStatusWebFilterFactory implements WebFilterFactory {
|
||||
|
||||
@Override
|
||||
public WebFilter apply(String... args) {
|
||||
@@ -15,6 +15,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
//TODO: move to package factory
|
||||
package org.springframework.cloud.gateway.filter.route;
|
||||
|
||||
import org.springframework.cloud.gateway.support.NameUtils;
|
||||
@@ -24,8 +25,10 @@ import org.springframework.web.server.WebFilter;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public interface RouteFilter {
|
||||
@FunctionalInterface
|
||||
public interface WebFilterFactory {
|
||||
|
||||
//TODO: move from String... to Tuple
|
||||
WebFilter apply(String... args);
|
||||
|
||||
default String name() {
|
||||
@@ -31,11 +31,11 @@ import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.cloud.gateway.filter.route.WebFilterFactory;
|
||||
import org.springframework.cloud.gateway.model.FilterDefinition;
|
||||
import org.springframework.cloud.gateway.model.Route;
|
||||
import org.springframework.cloud.gateway.config.GatewayProperties;
|
||||
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.RouteFilter;
|
||||
import org.springframework.cloud.gateway.support.RefreshRoutesEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.core.Ordered;
|
||||
@@ -53,7 +53,7 @@ import reactor.core.publisher.Mono;
|
||||
|
||||
/**
|
||||
* WebHandler that delegates to a chain of {@link GlobalFilter} instances and
|
||||
* {@link RouteFilter} instances then to the target {@link WebHandler}.
|
||||
* {@link WebFilterFactory} instances then to the target {@link WebHandler}.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
* @author Spencer Gibb
|
||||
@@ -64,21 +64,21 @@ public class FilteringWebHandler extends WebHandlerDecorator {
|
||||
|
||||
private final GatewayProperties gatewayProperties;
|
||||
private final List<GlobalFilter> globalFilters;
|
||||
private final Map<String, RouteFilter> routeFilters = new HashMap<>();
|
||||
private final Map<String, WebFilterFactory> webFilterFactories = new HashMap<>();
|
||||
|
||||
private final ConcurrentMap<String, List<WebFilter>> combinedFiltersForRoute = new ConcurrentHashMap<>();
|
||||
|
||||
public FilteringWebHandler(GatewayProperties gatewayProperties, List<GlobalFilter> globalFilters,
|
||||
List<RouteFilter> routeFilters) {
|
||||
this(new EmptyWebHandler(), gatewayProperties, globalFilters, routeFilters);
|
||||
List<WebFilterFactory> webFilterFactories) {
|
||||
this(new EmptyWebHandler(), gatewayProperties, globalFilters, webFilterFactories);
|
||||
}
|
||||
|
||||
public FilteringWebHandler(WebHandler targetHandler, GatewayProperties gatewayProperties, List<GlobalFilter> globalFilters,
|
||||
List<RouteFilter> routeFilters) {
|
||||
List<WebFilterFactory> webFilterFactories) {
|
||||
super(targetHandler);
|
||||
this.gatewayProperties = gatewayProperties;
|
||||
this.globalFilters = initList(globalFilters);
|
||||
routeFilters.forEach(routeFilter -> this.routeFilters.put(routeFilter.name(), routeFilter));
|
||||
webFilterFactories.forEach(factory -> this.webFilterFactories.put(factory.name(), factory));
|
||||
}
|
||||
|
||||
private static <T> List<T> initList(List<T> list) {
|
||||
@@ -101,11 +101,11 @@ public class FilteringWebHandler extends WebHandlerDecorator {
|
||||
@Override
|
||||
public Mono<Void> handle(ServerWebExchange exchange) {
|
||||
Optional<Route> route = exchange.getAttribute(GATEWAY_ROUTE_ATTR);
|
||||
List<WebFilter> routeFilters = combineFiltersForRoute(route);
|
||||
List<WebFilter> webFilters = combineFiltersForRoute(route);
|
||||
|
||||
logger.debug("Sorted routeFilters: "+ routeFilters);
|
||||
logger.debug("Sorted webFilterFactories: "+ webFilters);
|
||||
|
||||
return new DefaultWebFilterChain(routeFilters, getDelegate()).filter(exchange);
|
||||
return new DefaultWebFilterChain(webFilters, getDelegate()).filter(exchange);
|
||||
}
|
||||
|
||||
public List<WebFilter> combineFiltersForRoute(Optional<Route> route) {
|
||||
@@ -149,9 +149,9 @@ public class FilteringWebHandler extends WebHandlerDecorator {
|
||||
private List<WebFilter> loadWebFilters(String id, List<FilterDefinition> filterDefinitions) {
|
||||
List<WebFilter> filters = filterDefinitions.stream()
|
||||
.map(definition -> {
|
||||
RouteFilter filter = this.routeFilters.get(definition.getName());
|
||||
WebFilterFactory filter = this.webFilterFactories.get(definition.getName());
|
||||
if (filter == null) {
|
||||
throw new IllegalArgumentException("Unable to find RouteFilter with name " + definition.getName());
|
||||
throw new IllegalArgumentException("Unable to find WebFilterFactory with name " + definition.getName());
|
||||
}
|
||||
if (logger.isDebugEnabled()) {
|
||||
List<String> args;
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.springframework.web.reactive.function.server.RequestPredicate;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
@FunctionalInterface
|
||||
public interface RequestPredicateFactory {
|
||||
|
||||
RequestPredicate apply(Tuple args);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
package org.springframework.cloud.gateway.support;
|
||||
|
||||
import org.springframework.cloud.gateway.filter.route.RouteFilter;
|
||||
import org.springframework.cloud.gateway.filter.route.WebFilterFactory;
|
||||
import org.springframework.cloud.gateway.handler.predicate.RequestPredicateFactory;
|
||||
|
||||
/**
|
||||
@@ -34,7 +34,7 @@ public class NameUtils {
|
||||
return clazz.getSimpleName().replace(RequestPredicateFactory.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
public static String normalizeFilterName(Class<? extends RouteFilter> clazz) {
|
||||
return clazz.getSimpleName().replace(RouteFilter.class.getSimpleName(), "");
|
||||
public static String normalizeFilterName(Class<? extends WebFilterFactory> clazz) {
|
||||
return clazz.getSimpleName().replace(WebFilterFactory.class.getSimpleName(), "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class AddRequestHeaderRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class AddRequestHeaderWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void addRequestHeaderFilterWorks() {
|
||||
@@ -40,7 +40,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class AddRequestParameterRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class AddRequestParameterWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void addRequestParameterFilterWorksBlankQuery() {
|
||||
@@ -40,7 +40,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class HystrixRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class HystrixWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void hystrixFilterWorks() {
|
||||
@@ -40,7 +40,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class RedirectToRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class RedirectToWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void redirectToFilterWorks() {
|
||||
@@ -32,7 +32,7 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
|
||||
import static org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersRouteFilter.DEFAULT_HEADERS_TO_REMOVE;
|
||||
import static org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersWebFilterFactory.DEFAULT_HEADERS_TO_REMOVE;
|
||||
import static org.springframework.cloud.gateway.test.TestUtils.getMap;
|
||||
import static org.springframework.web.reactive.function.BodyExtractors.toMono;
|
||||
|
||||
@@ -44,7 +44,7 @@ import reactor.test.StepVerifier;
|
||||
//TODO: why does this break other tests if not in a profile?
|
||||
@ActiveProfiles("removenonproxyheaders")
|
||||
@DirtiesContext
|
||||
public class RemoveNonProxyHeadersRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class RemoveNonProxyHeadersWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void removeNonProxyHeadersFilterWorks() {
|
||||
@@ -40,7 +40,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class RemoveRequestHeaderRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class RemoveRequestHeaderWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void removeRequestHeaderFilterWorks() {
|
||||
@@ -37,7 +37,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class RemoveResponseHeaderRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class RemoveResponseHeaderWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void removeResponseHeaderFilterWorks() {
|
||||
@@ -38,7 +38,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class RewritePathRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class RewritePathWebFilterFactoryIntegrationTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void rewritePathFilterWorks() {
|
||||
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class RewritePathRouteFilterTests {
|
||||
public class RewritePathWebFilterFactoryTests {
|
||||
|
||||
@Test
|
||||
public void rewritePathFilterWorks() {
|
||||
@@ -47,7 +47,7 @@ public class RewritePathRouteFilterTests {
|
||||
}
|
||||
|
||||
private void testRewriteFilter(String regex, String replacement, String actualPath, String expectedPath) {
|
||||
WebFilter filter = new RewritePathRouteFilter().apply(regex, replacement);
|
||||
WebFilter filter = new RewritePathWebFilterFactory().apply(regex, replacement);
|
||||
|
||||
MockServerHttpRequest request = MockServerHttpRequest
|
||||
.get("http://localhost"+ actualPath)
|
||||
@@ -32,14 +32,14 @@ import org.springframework.web.reactive.function.client.ClientResponse;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.CONTENT_SECURITY_POLICY_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.REFERRER_POLICY_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.STRICT_TRANSPORT_SECURITY_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.X_CONTENT_TYPE_OPTIONS_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.X_DOWNLOAD_OPTIONS_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.X_FRAME_OPTIONS_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilter.X_XSS_PROTECTION_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.CONTENT_SECURITY_POLICY_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.REFERRER_POLICY_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.STRICT_TRANSPORT_SECURITY_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.X_CONTENT_TYPE_OPTIONS_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.X_DOWNLOAD_OPTIONS_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.X_FRAME_OPTIONS_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.X_PERMITTED_CROSS_DOMAIN_POLICIES_HEADER;
|
||||
import static org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactory.X_XSS_PROTECTION_HEADER;
|
||||
import static org.springframework.cloud.gateway.test.TestUtils.assertStatus;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -48,7 +48,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class SecureHeadersRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class SecureHeadersWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void secureHeadersFilterWorks() {
|
||||
@@ -38,7 +38,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class SetPathRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class SetPathWebFilterFactoryIntegrationTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void setPathFilterDefaultValuesWork() {
|
||||
@@ -38,7 +38,7 @@ import reactor.core.publisher.Mono;
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
public class SetPathRouteFilterTests {
|
||||
public class SetPathWebFilterFactoryTests {
|
||||
|
||||
@Test
|
||||
public void rewritePathFilterWorks() {
|
||||
@@ -54,7 +54,7 @@ public class SetPathRouteFilterTests {
|
||||
}
|
||||
|
||||
private void testRewriteFilter(String template, String actualPath, String expectedPath, HashMap<String, String> variables) {
|
||||
WebFilter filter = new SetPathRouteFilter().apply(new String[]{template});
|
||||
WebFilter filter = new SetPathWebFilterFactory().apply(new String[]{template});
|
||||
|
||||
MockServerHttpRequest request = MockServerHttpRequest
|
||||
.get("http://localhost"+ actualPath)
|
||||
@@ -38,7 +38,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class SetResponseRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class SetResponseWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void setResponseHeaderFilterWorks() {
|
||||
@@ -38,7 +38,7 @@ import reactor.test.StepVerifier;
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = RANDOM_PORT)
|
||||
@DirtiesContext
|
||||
public class SetStatusRouteFilterIntegrationTests extends BaseWebClientTests {
|
||||
public class SetStatusWebFilterFactoryTests extends BaseWebClientTests {
|
||||
|
||||
@Test
|
||||
public void setStatusIntWorks() {
|
||||
@@ -21,19 +21,19 @@ import org.junit.Ignore;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.Suite;
|
||||
import org.junit.runners.Suite.SuiteClasses;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestHeaderRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestParameterRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.HystrixRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RedirectToRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveRequestHeaderRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathRouteFilterTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SecureHeadersRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetPathRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetPathRouteFilterTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetResponseRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetStatusRouteFilterIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestHeaderWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.AddRequestParameterWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.HystrixWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RedirectToWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveNonProxyHeadersWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RemoveRequestHeaderWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathWebFilterFactoryIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.RewritePathWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SecureHeadersWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetPathWebFilterFactoryIntegrationTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetPathWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetResponseWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.filter.route.SetStatusWebFilterFactoryTests;
|
||||
import org.springframework.cloud.gateway.handler.predicate.AfterRequestPredicateFactoryTests;
|
||||
import org.springframework.cloud.gateway.handler.predicate.BeforeRequestPredicateFactoryTests;
|
||||
import org.springframework.cloud.gateway.handler.predicate.BetweenRequestPredicateFactoryTests;
|
||||
@@ -49,20 +49,20 @@ import org.springframework.cloud.gateway.handler.predicate.PathRequestPredicateF
|
||||
@SuiteClasses({GatewayIntegrationTests.class,
|
||||
FormIntegrationTests.class,
|
||||
// route filter tests
|
||||
AddRequestHeaderRouteFilterIntegrationTests.class,
|
||||
AddRequestParameterRouteFilterIntegrationTests.class,
|
||||
HystrixRouteFilterIntegrationTests.class,
|
||||
RedirectToRouteFilterIntegrationTests.class,
|
||||
RemoveNonProxyHeadersRouteFilterIntegrationTests.class,
|
||||
RemoveRequestHeaderRouteFilterIntegrationTests.class,
|
||||
RewritePathRouteFilterIntegrationTests.class,
|
||||
SecureHeadersRouteFilterIntegrationTests.class,
|
||||
SetPathRouteFilterIntegrationTests.class,
|
||||
SetPathRouteFilterTests.class,
|
||||
SetResponseRouteFilterIntegrationTests.class,
|
||||
SetStatusRouteFilterIntegrationTests.class,
|
||||
RewritePathRouteFilterTests.class,
|
||||
// route predicate tests
|
||||
AddRequestHeaderWebFilterFactoryTests.class,
|
||||
AddRequestParameterWebFilterFactoryTests.class,
|
||||
HystrixWebFilterFactoryTests.class,
|
||||
RedirectToWebFilterFactoryTests.class,
|
||||
RemoveNonProxyHeadersWebFilterFactoryTests.class,
|
||||
RemoveRequestHeaderWebFilterFactoryTests.class,
|
||||
RewritePathWebFilterFactoryIntegrationTests.class,
|
||||
SecureHeadersWebFilterFactoryTests.class,
|
||||
SetPathWebFilterFactoryIntegrationTests.class,
|
||||
SetPathWebFilterFactoryTests.class,
|
||||
SetResponseWebFilterFactoryTests.class,
|
||||
SetStatusWebFilterFactoryTests.class,
|
||||
RewritePathWebFilterFactoryTests.class,
|
||||
// RequestPredicateFactory tests
|
||||
AfterRequestPredicateFactoryTests.class,
|
||||
BeforeRequestPredicateFactoryTests.class,
|
||||
BetweenRequestPredicateFactoryTests.class,
|
||||
|
||||
Reference in New Issue
Block a user