Author: markt
Date: Thu Dec 11 23:22:59 2014
New Revision: 1644793
URL: http://svn.apache.org/r1644793
Log:
Ensure that the URL resulting from the RewriteValve is normalized before it is
used to map the request.
Modified:
tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
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=1644793&r1=1644792&r2=1644793&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java Thu
Dec 11 23:22:59 2014
@@ -48,6 +48,7 @@ import org.apache.catalina.util.URLEncod
import org.apache.catalina.valves.ValveBase;
import org.apache.tomcat.util.buf.CharChunk;
import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.http.RequestUtil;
import org.apache.tomcat.util.net.URL;
public class RewriteValve extends ValveBase {
@@ -457,14 +458,14 @@ public class RewriteValve extends ValveB
}
chunk.append(URLEncoder.DEFAULT.encode(urlString));
request.getCoyoteRequest().requestURI().toChars();
- // Decoded URI
+ // Decoded and normalized URI
request.getCoyoteRequest().decodedURI().setString(null);
chunk =
request.getCoyoteRequest().decodedURI().getCharChunk();
chunk.recycle();
if (context) {
chunk.append(contextPath);
}
- chunk.append(urlString);
+ chunk.append(RequestUtil.normalize(urlString));
request.getCoyoteRequest().decodedURI().toChars();
// Set the new Query if there is one
if (queryString != null) {
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=1644793&r1=1644792&r2=1644793&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
(original)
+++ tomcat/trunk/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
Thu Dec 11 23:22:59 2014
@@ -17,7 +17,6 @@
package org.apache.catalina.valves.rewrite;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Test;
import org.apache.catalina.Context;
@@ -43,7 +42,6 @@ public class TestRewriteValve extends To
}
@Test
- @Ignore // getRequestURI is not normalized
public void testNonNormalizedPathRewrite() throws Exception {
doTestRewrite("RewriteRule ^/b/(.*) /b/../a/$1", "/b/%255A",
"/a/%255A");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]