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