Commit 3a251e2a by Dave Syer

Revert "Use the original query string when forwarding the request"

This reverts commit 8952cff2.
parent c7c191c0
...@@ -232,18 +232,12 @@ public class ProxyRequestHelper { ...@@ -232,18 +232,12 @@ public class ProxyRequestHelper {
public Map<String, Object> debug(String verb, String uri, public Map<String, Object> debug(String verb, String uri,
MultiValueMap<String, String> headers, MultiValueMap<String, String> params, MultiValueMap<String, String> headers, MultiValueMap<String, String> params,
InputStream requestEntity) throws IOException { InputStream requestEntity) throws IOException {
return debug(verb, uri, headers, getQueryString(params), requestEntity);
}
public Map<String, Object> debug(String verb, String uri,
MultiValueMap<String, String> headers, String queryString,
InputStream requestEntity) throws IOException {
Map<String, Object> info = new LinkedHashMap<>(); Map<String, Object> info = new LinkedHashMap<>();
if (this.traces != null) { if (this.traces != null) {
RequestContext context = RequestContext.getCurrentContext(); RequestContext context = RequestContext.getCurrentContext();
info.put("method", verb); info.put("method", verb);
info.put("path", uri); info.put("path", uri);
info.put("query", queryString); info.put("query", getQueryString(params));
info.put("remote", true); info.put("remote", true);
info.put("proxy", context.get("proxy")); info.put("proxy", context.get("proxy"));
Map<String, Object> trace = new LinkedHashMap<>(); Map<String, Object> trace = new LinkedHashMap<>();
...@@ -340,8 +334,4 @@ public class ProxyRequestHelper { ...@@ -340,8 +334,4 @@ public class ProxyRequestHelper {
UriTemplate template = new UriTemplate("?" + query.toString().substring(1)); UriTemplate template = new UriTemplate("?" + query.toString().substring(1));
return template.expand(singles).toString(); return template.expand(singles).toString();
} }
public String formatQueryString(String queryString) {
return (queryString == null) ? "": "?" + queryString;
}
} }
...@@ -158,6 +158,8 @@ public class SimpleHostRoutingFilter extends ZuulFilter { ...@@ -158,6 +158,8 @@ public class SimpleHostRoutingFilter extends ZuulFilter {
HttpServletRequest request = context.getRequest(); HttpServletRequest request = context.getRequest();
MultiValueMap<String, String> headers = this.helper MultiValueMap<String, String> headers = this.helper
.buildZuulRequestHeaders(request); .buildZuulRequestHeaders(request);
MultiValueMap<String, String> params = this.helper
.buildZuulRequestQueryParams(request);
String verb = getVerb(request); String verb = getVerb(request);
InputStream requestEntity = getRequestBody(request); InputStream requestEntity = getRequestBody(request);
if (request.getContentLength() < 0) { if (request.getContentLength() < 0) {
...@@ -169,7 +171,7 @@ public class SimpleHostRoutingFilter extends ZuulFilter { ...@@ -169,7 +171,7 @@ public class SimpleHostRoutingFilter extends ZuulFilter {
try { try {
HttpResponse response = forward(this.httpClient, verb, uri, request, headers, HttpResponse response = forward(this.httpClient, verb, uri, request, headers,
request.getQueryString(), requestEntity); params, requestEntity);
setResponse(response); setResponse(response);
} }
catch (Exception ex) { catch (Exception ex) {
...@@ -246,9 +248,9 @@ public class SimpleHostRoutingFilter extends ZuulFilter { ...@@ -246,9 +248,9 @@ public class SimpleHostRoutingFilter extends ZuulFilter {
private HttpResponse forward(HttpClient httpclient, String verb, String uri, private HttpResponse forward(HttpClient httpclient, String verb, String uri,
HttpServletRequest request, MultiValueMap<String, String> headers, HttpServletRequest request, MultiValueMap<String, String> headers,
String queryString, InputStream requestEntity) MultiValueMap<String, String> params, InputStream requestEntity)
throws Exception { throws Exception {
Map<String, Object> info = this.helper.debug(verb, uri, headers, queryString, Map<String, Object> info = this.helper.debug(verb, uri, headers, params,
requestEntity); requestEntity);
URL host = RequestContext.getCurrentContext().getRouteHost(); URL host = RequestContext.getCurrentContext().getRouteHost();
HttpHost httpHost = getHttpHost(host); HttpHost httpHost = getHttpHost(host);
...@@ -259,23 +261,24 @@ public class SimpleHostRoutingFilter extends ZuulFilter { ...@@ -259,23 +261,24 @@ public class SimpleHostRoutingFilter extends ZuulFilter {
ContentType.create(request.getContentType())); ContentType.create(request.getContentType()));
switch (verb.toUpperCase()) { switch (verb.toUpperCase()) {
case "POST": case "POST":
HttpPost httpPost = new HttpPost(uri + this.helper.formatQueryString(queryString)); HttpPost httpPost = new HttpPost(uri + this.helper.getQueryString(params));
httpRequest = httpPost; httpRequest = httpPost;
httpPost.setEntity(entity); httpPost.setEntity(entity);
break; break;
case "PUT": case "PUT":
HttpPut httpPut = new HttpPut(uri + this.helper.formatQueryString(queryString)); HttpPut httpPut = new HttpPut(uri + this.helper.getQueryString(params));
httpRequest = httpPut; httpRequest = httpPut;
httpPut.setEntity(entity); httpPut.setEntity(entity);
break; break;
case "PATCH": case "PATCH":
HttpPatch httpPatch = new HttpPatch(uri + this.helper.formatQueryString(queryString)); HttpPatch httpPatch = new HttpPatch(uri + this.helper.getQueryString(params));
httpRequest = httpPatch; httpRequest = httpPatch;
httpPatch.setEntity(entity); httpPatch.setEntity(entity);
break; break;
default: default:
httpRequest = new BasicHttpRequest(verb, httpRequest = new BasicHttpRequest(verb,
uri + this.helper.formatQueryString(queryString)); uri + this.helper.getQueryString(params));
log.debug(uri + this.helper.getQueryString(params));
} }
try { try {
httpRequest.setHeaders(convertHeaders(headers)); httpRequest.setHeaders(convertHeaders(headers));
......
...@@ -259,15 +259,4 @@ public class ProxyRequestHelperTests { ...@@ -259,15 +259,4 @@ public class ProxyRequestHelperTests {
assertThat(queryString, is("?wsdl")); assertThat(queryString, is("?wsdl"));
} }
@Test
public void formatQueryStringShouldPrependQuestionMark() {
String queryString = new ProxyRequestHelper().formatQueryString("a=1234&b=5678");
assertThat(queryString, is("?a=1234&b=5678"));
}
@Test
public void formatQueryStringShouldReturnEmptyStringForNullValue() {
assertThat(new ProxyRequestHelper().formatQueryString(null), is(""));
}
} }
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