Pass along client config in RibbonCommand.run (#1573)
Pass along client config in RibbonCommand.run. Fixes gh-1530
This commit is contained in:
committed by
Spencer Gibb
parent
ab454f1e1b
commit
f3deb04521
@@ -131,7 +131,12 @@ public abstract class AbstractLoadBalancingClient<S extends ContextAwareRequest,
|
||||
}
|
||||
|
||||
protected boolean isSecure(final IClientConfig config) {
|
||||
return (config != null) ? config.get(CommonClientConfigKey.IsSecure)
|
||||
: this.secure;
|
||||
if(config != null) {
|
||||
Boolean result = config.get(CommonClientConfigKey.IsSecure);
|
||||
if(result != null) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return this.secure;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.util.List;
|
||||
import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.support.AbstractRibbonCommand;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import com.netflix.client.config.IClientConfig;
|
||||
import com.netflix.client.http.HttpRequest;
|
||||
import com.netflix.client.http.HttpResponse;
|
||||
import com.netflix.niws.client.http.RestClient;
|
||||
@@ -48,6 +49,12 @@ public class RestClientRibbonCommand extends AbstractRibbonCommand<RestClient, H
|
||||
super(commandKey, client, context, zuulProperties, zuulFallbackProvider);
|
||||
}
|
||||
|
||||
public RestClientRibbonCommand(String commandKey, RestClient client,
|
||||
RibbonCommandContext context, ZuulProperties zuulProperties,
|
||||
ZuulFallbackProvider zuulFallbackProvider, IClientConfig config) {
|
||||
super(commandKey, client, context, zuulProperties, zuulFallbackProvider, config);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public RestClientRibbonCommand(String commandKey, RestClient restClient,
|
||||
HttpRequest.Verb verb, String uri, Boolean retryable,
|
||||
|
||||
@@ -57,7 +57,7 @@ public class RestClientRibbonCommandFactory extends AbstractRibbonCommandFactory
|
||||
RestClient restClient = this.clientFactory.getClient(serviceId,
|
||||
RestClient.class);
|
||||
return new RestClientRibbonCommand(context.getServiceId(), restClient, context,
|
||||
this.zuulProperties, fallbackProvider);
|
||||
this.zuulProperties, fallbackProvider, clientFactory.getClientConfig(serviceId));
|
||||
}
|
||||
|
||||
public SpringClientFactory getClientFactory() {
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.RibbonCommandContext;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.ZuulFallbackProvider;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.support.AbstractRibbonCommand;
|
||||
import com.netflix.client.config.IClientConfig;
|
||||
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
@@ -46,6 +47,15 @@ public class HttpClientRibbonCommand extends AbstractRibbonCommand<RibbonLoadBal
|
||||
super(commandKey, client, context, zuulProperties, zuulFallbackProvider);
|
||||
}
|
||||
|
||||
public HttpClientRibbonCommand(final String commandKey,
|
||||
final RibbonLoadBalancingHttpClient client,
|
||||
final RibbonCommandContext context,
|
||||
final ZuulProperties zuulProperties,
|
||||
final ZuulFallbackProvider zuulFallbackProvider,
|
||||
final IClientConfig config) {
|
||||
super(commandKey, client, context, zuulProperties, zuulFallbackProvider, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RibbonApacheHttpRequest createRequest() throws Exception {
|
||||
return new RibbonApacheHttpRequest(this.context);
|
||||
|
||||
@@ -55,7 +55,8 @@ public class HttpClientRibbonCommandFactory extends AbstractRibbonCommandFactory
|
||||
serviceId, RibbonLoadBalancingHttpClient.class);
|
||||
client.setLoadBalancer(this.clientFactory.getLoadBalancer(serviceId));
|
||||
|
||||
return new HttpClientRibbonCommand(serviceId, client, context, zuulProperties, zuulFallbackProvider);
|
||||
return new HttpClientRibbonCommand(serviceId, client, context, zuulProperties, zuulFallbackProvider,
|
||||
clientFactory.getClientConfig(serviceId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.RibbonCommandContext;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.ZuulFallbackProvider;
|
||||
import org.springframework.cloud.netflix.zuul.filters.route.support.AbstractRibbonCommand;
|
||||
import com.netflix.client.config.IClientConfig;
|
||||
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
@@ -46,6 +47,15 @@ public class OkHttpRibbonCommand extends AbstractRibbonCommand<OkHttpLoadBalanci
|
||||
super(commandKey, client, context, zuulProperties, zuulFallbackProvider);
|
||||
}
|
||||
|
||||
public OkHttpRibbonCommand(final String commandKey,
|
||||
final OkHttpLoadBalancingClient client,
|
||||
final RibbonCommandContext context,
|
||||
final ZuulProperties zuulProperties,
|
||||
final ZuulFallbackProvider zuulFallbackProvider,
|
||||
final IClientConfig config) {
|
||||
super(commandKey, client, context, zuulProperties, zuulFallbackProvider, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected OkHttpRibbonRequest createRequest() throws Exception {
|
||||
return new OkHttpRibbonRequest(this.context);
|
||||
|
||||
@@ -55,7 +55,8 @@ public class OkHttpRibbonCommandFactory extends AbstractRibbonCommandFactory {
|
||||
serviceId, OkHttpLoadBalancingClient.class);
|
||||
client.setLoadBalancer(this.clientFactory.getLoadBalancer(serviceId));
|
||||
|
||||
return new OkHttpRibbonCommand(serviceId, client, context, zuulProperties, fallbackProvider);
|
||||
return new OkHttpRibbonCommand(serviceId, client, context, zuulProperties, fallbackProvider,
|
||||
clientFactory.getClientConfig(serviceId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.springframework.cloud.netflix.zuul.filters.route.ZuulFallbackProvider
|
||||
import org.springframework.http.client.ClientHttpResponse;
|
||||
import com.netflix.client.AbstractLoadBalancerAwareClient;
|
||||
import com.netflix.client.ClientRequest;
|
||||
import com.netflix.client.config.IClientConfig;
|
||||
import com.netflix.client.http.HttpResponse;
|
||||
import com.netflix.config.DynamicIntProperty;
|
||||
import com.netflix.config.DynamicPropertyFactory;
|
||||
@@ -45,6 +46,7 @@ public abstract class AbstractRibbonCommand<LBC extends AbstractLoadBalancerAwar
|
||||
protected final LBC client;
|
||||
protected RibbonCommandContext context;
|
||||
protected ZuulFallbackProvider zuulFallbackProvider;
|
||||
protected IClientConfig config;
|
||||
|
||||
public AbstractRibbonCommand(LBC client, RibbonCommandContext context,
|
||||
ZuulProperties zuulProperties) {
|
||||
@@ -59,10 +61,17 @@ public abstract class AbstractRibbonCommand<LBC extends AbstractLoadBalancerAwar
|
||||
public AbstractRibbonCommand(String commandKey, LBC client,
|
||||
RibbonCommandContext context, ZuulProperties zuulProperties,
|
||||
ZuulFallbackProvider fallbackProvider) {
|
||||
this(commandKey, client, context, zuulProperties, fallbackProvider, null);
|
||||
}
|
||||
|
||||
public AbstractRibbonCommand(String commandKey, LBC client,
|
||||
RibbonCommandContext context, ZuulProperties zuulProperties,
|
||||
ZuulFallbackProvider fallbackProvider, IClientConfig config) {
|
||||
super(getSetter(commandKey, zuulProperties));
|
||||
this.client = client;
|
||||
this.context = context;
|
||||
this.zuulFallbackProvider = fallbackProvider;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
protected static Setter getSetter(final String commandKey,
|
||||
@@ -93,7 +102,7 @@ public abstract class AbstractRibbonCommand<LBC extends AbstractLoadBalancerAwar
|
||||
final RequestContext context = RequestContext.getCurrentContext();
|
||||
|
||||
RQ request = createRequest();
|
||||
RS response = this.client.executeWithLoadBalancer(request);
|
||||
RS response = this.client.executeWithLoadBalancer(request, config);
|
||||
|
||||
context.set("ribbonResponse", response);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user