From 2f8fcc21bc8554b17d1c1a20e0d30463463fc72a Mon Sep 17 00:00:00 2001 From: fishtailfu Date: Wed, 14 May 2025 20:52:30 +0800 Subject: [PATCH] fix count circuit breaker in gateway & return 404 when context api does not match --- .../gateway/context/ContextRoutePredicateFactory.java | 6 ------ ...tiveLoadBalancerClientFilterBeanPostProcessorTest.java | 8 ++++---- .../PolarisReactiveLoadBalancerClientFilterTest.java | 4 ++-- .../gateway/context/ContextRoutePredicateFactoryTest.java | 1 - 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactory.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactory.java index 87d927b43..bede27aef 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactory.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/main/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactory.java @@ -39,12 +39,6 @@ public class ContextRoutePredicateFactory extends AbstractRoutePredicateFactory< // TODO: do path-rewriting , put to GATEWAY_PREDICATE_PATH_CONTAINER_ATTR return true; } - - - public Object getConfig() { - return config; - } - @Override public String toString() { return String.format("Config: %s", config); diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest.java index 2f274870a..bc8fb4d90 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.springframework.cloud.gateway.config.GatewayLoadBalancerProperties; +import org.springframework.cloud.gateway.config.LoadBalancerProperties; import org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.context.ApplicationContext; @@ -46,7 +46,7 @@ public class PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest { private LoadBalancerClientFactory loadBalancerClientFactory; @Mock - private GatewayLoadBalancerProperties gatewayLoadBalancerProperties; + private LoadBalancerProperties gatewayLoadBalancerProperties; private PolarisReactiveLoadBalancerClientFilterBeanPostProcessor processor; @@ -55,7 +55,7 @@ public class PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest { MockitoAnnotations.openMocks(this); processor = new PolarisReactiveLoadBalancerClientFilterBeanPostProcessor(applicationContext); - when(applicationContext.getBean(GatewayLoadBalancerProperties.class)).thenReturn(gatewayLoadBalancerProperties); + when(applicationContext.getBean(LoadBalancerProperties.class)).thenReturn(gatewayLoadBalancerProperties); when(applicationContext.getBean(LoadBalancerClientFactory.class)).thenReturn(loadBalancerClientFactory); } @@ -75,7 +75,7 @@ public class PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest { Object result = processor.postProcessAfterInitialization(originalInterceptor, beanName); // Assert - Assertions.assertInstanceOf(PolarisReactiveLoadBalancerClientFilter.class, result); + Assertions.assertTrue(result instanceof PolarisReactiveLoadBalancerClientFilter); } @Test diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterTest.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterTest.java index abf932a07..9436e22c9 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterTest.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/PolarisReactiveLoadBalancerClientFilterTest.java @@ -28,7 +28,7 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import reactor.core.publisher.Mono; -import org.springframework.cloud.gateway.config.GatewayLoadBalancerProperties; +import org.springframework.cloud.gateway.config.LoadBalancerProperties; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; @@ -47,7 +47,7 @@ class PolarisReactiveLoadBalancerClientFilterTest { @Mock private LoadBalancerClientFactory clientFactory; @Mock - private GatewayLoadBalancerProperties properties; + private LoadBalancerProperties properties; @Mock private ReactiveLoadBalancerClientFilter originalFilter; @Mock diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactoryTest.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactoryTest.java index 3cd9dbcc2..f13496027 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactoryTest.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-gateway-plugin/src/test/java/com/tencent/cloud/plugin/gateway/context/ContextRoutePredicateFactoryTest.java @@ -51,7 +51,6 @@ class ContextRoutePredicateFactoryTest { GatewayPredicate gatewayPredicate = (GatewayPredicate) factory.apply(config); gatewayPredicate.toString(); Assertions.assertTrue(gatewayPredicate.test(null)); - Assertions.assertEquals(config, gatewayPredicate.getConfig()); }); }