From 77f6b5e4a5e91e4649f5d773a049a69024a8347f Mon Sep 17 00:00:00 2001 From: tanghc Date: Mon, 2 Sep 2019 10:38:03 +0800 Subject: [PATCH] 2.0 --- .../configuration/BaseGatewayConfiguration.java | 15 +++++++++++---- .../gatewaycommon/gateway/filter/LimitFilter.java | 7 +++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java index bab2e239..7f2f79cd 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java @@ -3,6 +3,7 @@ package com.gitee.sop.gatewaycommon.gateway.configuration; import com.gitee.sop.gatewaycommon.bean.ApiConfig; import com.gitee.sop.gatewaycommon.gateway.filter.EnvGrayFilter; import com.gitee.sop.gatewaycommon.gateway.filter.GatewayModifyResponseGatewayFilter; +import com.gitee.sop.gatewaycommon.gateway.filter.LimitFilter; import com.gitee.sop.gatewaycommon.gateway.filter.LoadBalancerClientExtFilter; import com.gitee.sop.gatewaycommon.gateway.filter.ParameterFormatterFilter; import com.gitee.sop.gatewaycommon.gateway.filter.ValidateFilter; @@ -89,6 +90,16 @@ public class BaseGatewayConfiguration extends AbstractConfiguration { return new ValidateFilter(); } + @Bean + ParameterFormatterFilter parameterFormatterFilter() { + return new ParameterFormatterFilter(); + } + + @Bean + LimitFilter limitFilter() { + return new LimitFilter(); + } + @Bean LoadBalancerClientExtFilter loadBalancerClientExtFilter() { return new LoadBalancerClientExtFilter(); @@ -106,10 +117,6 @@ public class BaseGatewayConfiguration extends AbstractConfiguration { return gatewayRouteRepository; } - @Bean - ParameterFormatterFilter parameterFormatterFilter() { - return new ParameterFormatterFilter(); - } @Bean EnvGrayFilter envGrayFilter() { diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java index c24ef5d3..8d5226d1 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java @@ -41,7 +41,7 @@ public class LimitFilter implements GlobalFilter, Ordered { } // 单个限流功能未开启 if (configLimitDto.getLimitStatus() == ConfigLimitDto.LIMIT_STATUS_CLOSE) { - return null; + return chain.filter(exchange); } byte limitType = configLimitDto.getLimitType().byteValue(); LimitManager limitManager = ApiConfig.getInstance().getLimitManager(); @@ -82,12 +82,15 @@ public class LimitFilter implements GlobalFilter, Ordered { List limitConfigList = new ArrayList<>(); for (String limitKey : limitKeys) { ConfigLimitDto configLimitDto = limitConfigManager.get(limitKey); + if (configLimitDto == null) { + continue; + } limitConfigList.add(configLimitDto); } if (limitConfigList.isEmpty()) { return null; } - Collections.sort(limitConfigList, Comparator.comparing(ConfigLimitDto::getOrderIndex)); + limitConfigList.sort(Comparator.comparing(ConfigLimitDto::getOrderIndex)); return limitConfigList.get(0); } }