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