ASF Bugzilla – Attachment 34226 Details for
Bug 60013
Non-ASCII characters in querystring get mangled after URL Rewrite using RewriteValve
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
QueryString Append Failure
file_60013.txt (text/plain), 2.16 KB, created by
Santhana Preethi
on 2016-09-09 18:27:12 UTC
(
hide
)
Description:
QueryString Append Failure
Filename:
MIME Type:
Creator:
Santhana Preethi
Created:
2016-09-09 18:27:12 UTC
Size:
2.16 KB
patch
obsolete
>package org.apache.catalina.valves.rewrite; > >import java.nio.charset.StandardCharsets; > >import org.junit.Assert; >import org.junit.Test; > >import org.apache.catalina.Context; >import org.apache.catalina.servlets.DefaultServlet; >import org.apache.catalina.startup.Tomcat; >import org.apache.catalina.startup.TomcatBaseTest; >import org.apache.tomcat.util.buf.ByteChunk; > >public class TestQSAppend extends TomcatBaseTest { > > //Fails due to double encoding > @Test > public void testUtf8WithBothQsFlagsLQSA() throws Exception { > // Note %C2%A1 == \u00A1 > doTestRewrite("RewriteRule ^/b/(.*)/(.*) /c/\u00A1$1?$2 [L,QSA]", > "/b/%C2%A1/id=%C2%A1?di=%C2%AE", "/c/%C2%A1%C2%A1", > "id=%C2%A1&di=%C2%AE"); > } > > > @SuppressWarnings("deprecation") > private void doTestRewrite(String config, String request, String expectedURI, > String expectedQueryString) throws Exception { > > Tomcat tomcat = getTomcatInstance(); > > // No file system docBase required > Context ctx = tomcat.addContext("", null); > > RewriteValve rewriteValve = new RewriteValve(); > ctx.getPipeline().addValve(rewriteValve); > > rewriteValve.setConfiguration(config); > > Tomcat.addServlet(ctx, "snoop", new SnoopServlet()); > ctx.addServletMappingDecoded("/a/%5A", "snoop"); > ctx.addServletMappingDecoded("/c/*", "snoop"); > Tomcat.addServlet(ctx, "default", new DefaultServlet()); > ctx.addServletMappingDecoded("/", "default"); > > tomcat.start(); > > ByteChunk res = getUrl("http://localhost:" + getPort() + request); > res.setCharset(StandardCharsets.UTF_8); > > String body = res.toString(); > RequestDescriptor requestDesc = SnoopResult.parse(body); > //System.out.println(request+" "+ body); > String requestURI = requestDesc.getRequestInfo("REQUEST-URI"); > Assert.assertEquals(expectedURI, requestURI); > > if (expectedQueryString != null) { > String queryString = requestDesc.getRequestInfo("REQUEST-QUERY-STRING"); > Assert.assertEquals(expectedQueryString, queryString); > } > } >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 60013
:
34176
|
34177
|
34178
|
34205
|
34208
|
34209
|
34220
| 34226 |
34247
|
34281