diff --git a/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java b/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java index f0cbf93d..ab658c83 100644 --- a/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java +++ b/src/main/java/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.java @@ -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 filters, - List filterDefinitions) { + Map 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(); } diff --git a/src/main/java/org/springframework/cloud/gateway/filter/route/RouteFilter.java b/src/main/java/org/springframework/cloud/gateway/filter/route/RouteFilter.java index 7e484107..0b620b37 100644 --- a/src/main/java/org/springframework/cloud/gateway/filter/route/RouteFilter.java +++ b/src/main/java/org/springframework/cloud/gateway/filter/route/RouteFilter.java @@ -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) { diff --git a/src/main/java/org/springframework/cloud/gateway/handler/GatewayFilteringWebHandler.java b/src/main/java/org/springframework/cloud/gateway/handler/GatewayFilteringWebHandler.java index c449973e..f2706b7f 100644 --- a/src/main/java/org/springframework/cloud/gateway/handler/GatewayFilteringWebHandler.java +++ b/src/main/java/org/springframework/cloud/gateway/handler/GatewayFilteringWebHandler.java @@ -58,10 +58,14 @@ public class GatewayFilteringWebHandler extends WebHandlerDecorator { private final Map filterDefinitions = new HashMap<>(); public GatewayFilteringWebHandler(WebHandler targetHandler, List filters, - List filterDefinitions) { + Map 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 List initList(List list) {