Author: markt
Date: Tue Sep 20 19:20:46 2016
New Revision: 1761625
URL: http://svn.apache.org/viewvc?rev=1761625&view=rev
Log:
Another fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=60013
Fix QSA handling when there is no query string
Modified:
tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java?rev=1761625&r1=1761624&r2=1761625&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java Tue
Sep 20 19:20:46 2016
@@ -532,7 +532,8 @@ public class RewriteValve extends ValveB
chunk =
request.getCoyoteRequest().queryString().getCharChunk();
chunk.recycle();
chunk.append(ENCODER.encode(queryStringDecoded,
uriEncoding));
- if (qsa) {
+ if (qsa && originalQueryStringEncoded != null &&
+ originalQueryStringEncoded.length() > 0) {
chunk.append('&');
chunk.append(originalQueryStringEncoded);
}
Modified:
tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java?rev=1761625&r1=1761624&r2=1761625&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
(original)
+++ tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
Tue Sep 20 19:20:46 2016
@@ -409,6 +409,15 @@ public class TestRewriteValve extends To
@Test
+ public void testUtf8WithRewriteQsFlagsQSA() throws Exception {
+ // Note %C2%A1 == \u00A1
+ doTestRewrite("RewriteRule ^/b/(.*)/(.*) /c/\u00A1$1?$2 [QSA]",
+ "/b/%C2%A1/id=%C2%A1", "/c/%C2%A1%C2%A1",
+ "id=%C2%A1");
+ }
+
+
+ @Test
public void testUtf8FlagsNone() throws Exception {
// Note %C2%A1 == \u00A1
doTestRewrite("RewriteRule ^/b/(.*) /c/\u00A1$1", "/b/%C2%A1",
"/c/%C2%A1%C2%A1");
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1761625&r1=1761624&r2=1761625&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Sep 20 19:20:46 2016
@@ -57,7 +57,7 @@
the Rewrite Valve with mod_rewite. As part of this, provide an
implementation for the <code>B</code> and <code>NE</code> flags and
improve the handling for the <code>QSA</code> flag. Includes multiple
- test cases by Santhana Preethi. (markt)
+ test cases by Santhana Preethiand a patch by Tiago Oliveira. (markt)
</fix>
<fix>
<bug>60116</bug>: Fix a problem with the rewrite valve that caused back
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]