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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to