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