Skip to content

Commit 8a1318c

Browse files
committed
revert gateway
1 parent f7bc24a commit 8a1318c

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

spring-cloud-gray-plugins/spring-cloud-gray-plugin-gateway/src/main/java/cn/springcloud/gray/client/gateway/GrayLoadBalancerClientFilter.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.springframework.beans.factory.annotation.Autowired;
1212
import org.springframework.cloud.client.ServiceInstance;
1313
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
14+
import org.springframework.cloud.gateway.config.LoadBalancerProperties;
1415
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
1516
import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter;
1617
import org.springframework.cloud.gateway.support.NotFoundException;
@@ -36,8 +37,11 @@ public class GrayLoadBalancerClientFilter extends LoadBalancerClientFilter {
3637
@Autowired
3738
private RequestLocalStorage requestLocalStorage;
3839

39-
public GrayLoadBalancerClientFilter(LoadBalancerClient loadBalancer) {
40-
super(loadBalancer);
40+
private LoadBalancerProperties properties;
41+
42+
public GrayLoadBalancerClientFilter(LoadBalancerClient loadBalancer, LoadBalancerProperties properties) {
43+
super(loadBalancer, properties);
44+
this.properties = properties;
4145
}
4246

4347

@@ -46,22 +50,22 @@ public GrayLoadBalancerClientFilter(LoadBalancerClient loadBalancer) {
4650
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
4751
URI url = exchange.getAttribute(GATEWAY_REQUEST_URL_ATTR);
4852
String schemePrefix = exchange.getAttribute(GATEWAY_SCHEME_PREFIX_ATTR);
49-
if (url == null || (!"lb".equals(url.getScheme()) && !"lb".equals(schemePrefix))) {
53+
if (url == null
54+
|| (!"lb".equals(url.getScheme()) && !"lb".equals(schemePrefix))) {
5055
return chain.filter(exchange);
5156
}
52-
//preserve the original url
57+
// preserve the original url
5358
addOriginalRequestUrl(exchange, url);
5459

5560
log.trace("LoadBalancerClientFilter url before: " + url);
56-
57-
5861
// gray append start
5962
ServerHttpRequest.Builder requestBuilder = exchange.getRequest().mutate();
6063
final ServiceInstance instance = choose(url, exchange, requestBuilder);
6164
// gray append end
6265

6366
if (instance == null) {
64-
throw new NotFoundException("Unable to find instance for " + url.getHost());
67+
throw NotFoundException.create(properties.isUse404(),
68+
"Unable to find instance for " + url.getHost());
6569
}
6670

6771
URI uri = exchange.getRequest().getURI();
@@ -73,7 +77,8 @@ public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
7377
overrideScheme = url.getScheme();
7478
}
7579

76-
URI requestUrl = loadBalancer.reconstructURI(new DelegatingServiceInstance(instance, overrideScheme), uri);
80+
URI requestUrl = loadBalancer.reconstructURI(
81+
new DelegatingServiceInstance(instance, overrideScheme), uri);
7782

7883
log.trace("LoadBalancerClientFilter url chosen: " + requestUrl);
7984
exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, requestUrl);

spring-cloud-gray-plugins/spring-cloud-gray-plugin-gateway/src/main/java/cn/springcloud/gray/client/gateway/configuration/GrayGatewayAutoConfiguration.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
88
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
99
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
10+
import org.springframework.cloud.gateway.config.LoadBalancerProperties;
1011
import org.springframework.cloud.gateway.filter.LoadBalancerClientFilter;
1112
import org.springframework.context.annotation.Bean;
1213
import org.springframework.context.annotation.Configuration;
@@ -25,8 +26,8 @@ public class GrayGatewayAutoConfiguration {
2526

2627
@Bean
2728
@ConditionalOnBean(LoadBalancerClient.class)
28-
public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client) {
29-
return new GrayLoadBalancerClientFilter(client);
29+
public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client, LoadBalancerProperties properties) {
30+
return new GrayLoadBalancerClientFilter(client, properties);
3031
}
3132

3233

0 commit comments

Comments
 (0)