Remove RouteFilter.getName(), rely on bean name.

Will still remove RouteFilter if that is the suffix.
This commit is contained in:
Spencer Gibb
2017-01-14 11:14:37 -07:00
parent b9daf4fd4d
commit a67d424328
3 changed files with 16 additions and 15 deletions

View File

@@ -1,6 +1,7 @@
package org.springframework.cloud.gateway.config;
import java.util.List;
import java.util.Map;
import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -71,7 +72,7 @@ public class GatewayAutoConfiguration {
@Bean
public GatewayFilteringWebHandler gatewayFilteringWebHandler(GatewayWebHandler gatewayWebHandler,
List<GatewayFilter> filters,
List<RouteFilter> filterDefinitions) {
Map<String, RouteFilter> filterDefinitions) {
return new GatewayFilteringWebHandler(gatewayWebHandler, filters, filterDefinitions);
}
@@ -116,42 +117,42 @@ public class GatewayAutoConfiguration {
// Filter Factory beans
@Bean
@Bean(name = "AddRequestHeaderRouteFilter")
public AddRequestHeaderRouteFilter addRequestHeaderRouteFilter() {
return new AddRequestHeaderRouteFilter();
}
@Bean
@Bean(name = "AddResponseHeaderRouteFilter")
public AddResponseHeaderRouteFilter addResponseHeaderRouteFilter() {
return new AddResponseHeaderRouteFilter();
}
@Bean
@Bean(name = "RemoveRequestHeaderRouteFilter")
public RemoveRequestHeaderRouteFilter removeRequestHeaderRouteFilter() {
return new RemoveRequestHeaderRouteFilter();
}
@Bean
@Bean(name = "RemoveResponseHeaderRouteFilter")
public RemoveResponseHeaderRouteFilter removeResponseHeaderRouteFilter() {
return new RemoveResponseHeaderRouteFilter();
}
@Bean
@Bean(name = "RewritePathRouteFilter")
public RewritePathRouteFilter rewritePathRouteFilter() {
return new RewritePathRouteFilter();
}
@Bean
@Bean(name = "SetPathRouteFilter")
public SetPathRouteFilter setPathRouteFilter() {
return new SetPathRouteFilter();
}
@Bean
@Bean(name = "SetResponseHeaderRouteFilter")
public SetResponseHeaderRouteFilter setResponseHeaderRouteFilter() {
return new SetResponseHeaderRouteFilter();
}
@Bean
@Bean(name = "SetStatusRouteFilter")
public SetStatusRouteFilter setStatusRouteFilter() {
return new SetStatusRouteFilter();
}

View File

@@ -8,10 +8,6 @@ import org.springframework.web.server.WebFilter;
*/
public interface RouteFilter {
default String getName() {
return getClass().getSimpleName().replace(RouteFilter.class.getSimpleName(), "");
}
WebFilter apply(String value, String[] args);
default void validate(String[] args, int requiredSize) {

View File

@@ -58,10 +58,14 @@ public class GatewayFilteringWebHandler extends WebHandlerDecorator {
private final Map<String, RouteFilter> filterDefinitions = new HashMap<>();
public GatewayFilteringWebHandler(WebHandler targetHandler, List<GatewayFilter> filters,
List<RouteFilter> filterDefinitions) {
Map<String, RouteFilter> filterDefinitions) {
super(targetHandler);
this.filters = initList(filters);
initList(filterDefinitions).forEach(def -> this.filterDefinitions.put(def.getName(), def));
filterDefinitions.forEach((name, def) -> this.filterDefinitions.put(nornamlizeName(name), def));
}
private String nornamlizeName(String name) {
return name.replace(RouteFilter.class.getSimpleName(), "");
}
private static <T> List<T> initList(List<T> list) {