Skip to content

Commit 5fe6ed5

Browse files
committed
Remove unnecessary query parameter encoding check by assuming decoded parameters from serverRequest
Signed-off-by: raccoonback <kosb15@naver.com>
1 parent 107e8d3 commit 5fe6ed5

File tree

1 file changed

+1
-33
lines changed

1 file changed

+1
-33
lines changed

spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/handler/ProxyExchangeHandlerFunction.java

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ private void init() {
8787
@Override
8888
public ServerResponse handle(ServerRequest serverRequest) {
8989
URI uri = uriResolver.apply(serverRequest);
90-
MultiValueMap<String, String> params = ensureEncodedQueryParameters(serverRequest);
90+
MultiValueMap<String, String> params = MvcUtils.encodeQueryParams(serverRequest.params());
9191
// @formatter:off
9292
URI url = UriComponentsBuilder.fromUri(serverRequest.uri())
9393
.scheme(uri.getScheme())
@@ -134,38 +134,6 @@ private <REQUEST_OR_RESPONSE> HttpHeaders filterHeaders(List<?> filters, HttpHea
134134
return filtered;
135135
}
136136

137-
private static MultiValueMap<String, String> ensureEncodedQueryParameters(ServerRequest serverRequest) {
138-
boolean encoded = containsEncodedQuery(serverRequest.uri(), serverRequest.params());
139-
MultiValueMap<String, String> params = serverRequest.params();
140-
if (!encoded) {
141-
params = MvcUtils.encodeQueryParams(serverRequest.params());
142-
}
143-
return params;
144-
}
145-
146-
private static boolean containsEncodedQuery(URI uri, MultiValueMap<String, String> params) {
147-
String rawQuery = uri.getRawQuery();
148-
boolean encoded = (rawQuery != null && rawQuery.contains("%"))
149-
|| (uri.getRawPath() != null && uri.getRawPath().contains("%"));
150-
151-
// Verify if it is really fully encoded. Treat partial encoded as unencoded.
152-
if (encoded) {
153-
try {
154-
UriComponentsBuilder.fromUri(uri).replaceQueryParams(params).build(true);
155-
return true;
156-
}
157-
catch (IllegalArgumentException ignored) {
158-
if (log.isTraceEnabled()) {
159-
log.trace("Error in containsEncodedParts", ignored);
160-
}
161-
}
162-
163-
return false;
164-
}
165-
166-
return false;
167-
}
168-
169137
public interface URIResolver extends Function<ServerRequest, URI> {
170138

171139
}

0 commit comments

Comments
 (0)