fix count circuit breaker in gateway & return 404 when context api does not match

pull/1552/head
fishtailfu 4 months ago
parent 933d09622c
commit 2f8fcc21bc

@ -39,12 +39,6 @@ public class ContextRoutePredicateFactory extends AbstractRoutePredicateFactory<
// TODO: do path-rewriting , put to GATEWAY_PREDICATE_PATH_CONTAINER_ATTR // TODO: do path-rewriting , put to GATEWAY_PREDICATE_PATH_CONTAINER_ATTR
return true; return true;
} }
public Object getConfig() {
return config;
}
@Override @Override
public String toString() { public String toString() {
return String.format("Config: %s", config); return String.format("Config: %s", config);

@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; 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.gateway.filter.ReactiveLoadBalancerClientFilter;
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
@ -46,7 +46,7 @@ public class PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest {
private LoadBalancerClientFactory loadBalancerClientFactory; private LoadBalancerClientFactory loadBalancerClientFactory;
@Mock @Mock
private GatewayLoadBalancerProperties gatewayLoadBalancerProperties; private LoadBalancerProperties gatewayLoadBalancerProperties;
private PolarisReactiveLoadBalancerClientFilterBeanPostProcessor processor; private PolarisReactiveLoadBalancerClientFilterBeanPostProcessor processor;
@ -55,7 +55,7 @@ public class PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest {
MockitoAnnotations.openMocks(this); MockitoAnnotations.openMocks(this);
processor = new PolarisReactiveLoadBalancerClientFilterBeanPostProcessor(applicationContext); 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); when(applicationContext.getBean(LoadBalancerClientFactory.class)).thenReturn(loadBalancerClientFactory);
} }
@ -75,7 +75,7 @@ public class PolarisReactiveLoadBalancerClientFilterBeanPostProcessorTest {
Object result = processor.postProcessAfterInitialization(originalInterceptor, beanName); Object result = processor.postProcessAfterInitialization(originalInterceptor, beanName);
// Assert // Assert
Assertions.assertInstanceOf(PolarisReactiveLoadBalancerClientFilter.class, result); Assertions.assertTrue(result instanceof PolarisReactiveLoadBalancerClientFilter);
} }
@Test @Test

@ -28,7 +28,7 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
import reactor.core.publisher.Mono; 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.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter; import org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter;
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
@ -47,7 +47,7 @@ class PolarisReactiveLoadBalancerClientFilterTest {
@Mock @Mock
private LoadBalancerClientFactory clientFactory; private LoadBalancerClientFactory clientFactory;
@Mock @Mock
private GatewayLoadBalancerProperties properties; private LoadBalancerProperties properties;
@Mock @Mock
private ReactiveLoadBalancerClientFilter originalFilter; private ReactiveLoadBalancerClientFilter originalFilter;
@Mock @Mock

@ -51,7 +51,6 @@ class ContextRoutePredicateFactoryTest {
GatewayPredicate gatewayPredicate = (GatewayPredicate) factory.apply(config); GatewayPredicate gatewayPredicate = (GatewayPredicate) factory.apply(config);
gatewayPredicate.toString(); gatewayPredicate.toString();
Assertions.assertTrue(gatewayPredicate.test(null)); Assertions.assertTrue(gatewayPredicate.test(null));
Assertions.assertEquals(config, gatewayPredicate.getConfig());
}); });
} }

Loading…
Cancel
Save