X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=inline;f=org.argeo.cms.ee%2Fsrc%2Forg%2Fargeo%2Fcms%2Fservlet%2Fhttpserver%2FServletHttpExchange.java;h=85553f01cd9f1fd1be76a348d1d0a90c6434c15f;hb=f5c293792ad697475d29073069c05063d7218c0b;hp=f5e9c03945f4877c62f36369d264d75ed5bd1aea;hpb=2e4eb39468ca952109a7bb8ad6e5eaf417923e17;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ee/src/org/argeo/cms/servlet/httpserver/ServletHttpExchange.java b/org.argeo.cms.ee/src/org/argeo/cms/servlet/httpserver/ServletHttpExchange.java index f5e9c0394..85553f01c 100644 --- a/org.argeo.cms.ee/src/org/argeo/cms/servlet/httpserver/ServletHttpExchange.java +++ b/org.argeo.cms.ee/src/org/argeo/cms/servlet/httpserver/ServletHttpExchange.java @@ -5,9 +5,14 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.URI; +import java.net.URLEncoder; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; +import java.util.Map; +import java.util.StringJoiner; import javax.net.ssl.SSLSession; import javax.servlet.http.HttpServletRequest; @@ -72,7 +77,17 @@ class ServletHttpExchange extends HttpsExchange { @Override public URI getRequestURI() { - return URI.create(httpServletRequest.getRequestURI()); + // TODO properly deal with charset? + Charset encoding = StandardCharsets.UTF_8; + Map parameters = httpServletRequest.getParameterMap(); + StringJoiner sb = new StringJoiner("&"); + for (String key : parameters.keySet()) { + for (String value : parameters.get(key)) { + String pair = URLEncoder.encode(key, encoding) + '=' + URLEncoder.encode(value, encoding); + sb.add(pair); + } + } + return URI.create(httpServletRequest.getRequestURI() + (sb.length() != 0 ? '?' + sb.toString() : "")); } @Override