Commit f3deb045 by Ryan Baxter Committed by Spencer Gibb

Pass along client config in RibbonCommand.run (#1573)

Pass along client config in RibbonCommand.run. Fixes gh-1530
parent ab454f1e
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment