You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2011/10/10 14:10:54 UTC

svn commit: r1180907 - /tomcat/trunk/java/org/apache/catalina/connector/Response.java

Author: markt
Date: Mon Oct 10 12:10:53 2011
New Revision: 1180907

URL: http://svn.apache.org/viewvc?rev=1180907&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=51972
Add support for handling scheme/protocol relative URLs for redirects

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Response.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1180907&r1=1180906&r2=1180907&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Mon Oct 10 12:10:53 2011
@@ -1591,7 +1591,24 @@ public class Response
 
         boolean leadingSlash = location.startsWith("/");
 
-        if (leadingSlash || !hasScheme(location)) {
+        if (location.startsWith("//")) {
+            // Scheme relative
+            redirectURLCC.recycle();
+            // Add the scheme
+            String scheme = request.getScheme();
+                try {
+                redirectURLCC.append(scheme, 0, scheme.length());
+                redirectURLCC.append(':');
+                redirectURLCC.append(location, 0, location.length());
+                return redirectURLCC.toString();
+            } catch (IOException e) {
+                IllegalArgumentException iae =
+                    new IllegalArgumentException(location);
+                iae.initCause(e);
+                throw iae;
+            }
+
+        } else if (leadingSlash || !hasScheme(location)) {
 
             redirectURLCC.recycle();
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org