Author: markt Date: Thu Dec 11 21:16:00 2014 New Revision: 1644768 URL: http://svn.apache.org/r1644768 Log: Use a single, common URLDecoder instance. This adds '~' as a safe character in some cases.
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java tomcat/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1644768&r1=1644767&r2=1644768&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu Dec 11 21:16:00 2014 @@ -121,28 +121,6 @@ public class CoyoteAdapter implements Ad StringManager.getManager(Constants.Package); - /** - * Encoder for the Location URL in HTTP redirects. - */ - protected static final URLEncoder urlEncoder; - - - // ----------------------------------------------------- Static Initializer - - - /** - * The safe character set. - */ - static { - urlEncoder = new URLEncoder(); - urlEncoder.addSafeCharacter('-'); - urlEncoder.addSafeCharacter('_'); - urlEncoder.addSafeCharacter('.'); - urlEncoder.addSafeCharacter('*'); - urlEncoder.addSafeCharacter('/'); - } - - // -------------------------------------------------------- Adapter Methods @Override @@ -809,7 +787,7 @@ public class CoyoteAdapter implements Ad // Possible redirect MessageBytes redirectPathMB = request.getMappingData().redirectPath; if (!redirectPathMB.isNull()) { - String redirectPath = urlEncoder.encode(redirectPathMB.toString()); + String redirectPath = URLEncoder.DEFAULT.encode(redirectPathMB.toString()); String query = request.getQueryString(); if (request.isRequestedSessionIdFromURL()) { // This is not optimal, but as this is not very common, it Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1644768&r1=1644767&r2=1644768&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Dec 11 21:16:00 2014 @@ -168,32 +168,8 @@ public class StandardContext extends Con } - // ----------------------------------------------------- Class Variables - - - /** - * Array containing the safe characters set. - */ - protected static URLEncoder urlEncoder; - - - /** - * GMT timezone - all HTTP dates are on GMT - */ - static { - urlEncoder = new URLEncoder(); - urlEncoder.addSafeCharacter('~'); - urlEncoder.addSafeCharacter('-'); - urlEncoder.addSafeCharacter('_'); - urlEncoder.addSafeCharacter('.'); - urlEncoder.addSafeCharacter('*'); - urlEncoder.addSafeCharacter('/'); - } - - // ----------------------------------------------------- Instance Variables - /** * Allow multipart/form-data requests to be parsed even when the * target servlet doesn't specify @MultipartConfig or have a @@ -1977,7 +1953,7 @@ public class StandardContext extends Con log.warn(sm.getString( "standardContext.pathInvalid", path, this.path)); } - encodedPath = urlEncoder.encode(this.path); + encodedPath = URLEncoder.DEFAULT.encode(this.path); if (getName() == null) { setName(this.path); } Modified: tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java?rev=1644768&r1=1644767&r2=1644768&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/servlets/DefaultServlet.java Thu Dec 11 21:16:00 2014 @@ -129,11 +129,6 @@ public class DefaultServlet extends Http */ protected static final StringManager sm = StringManager.getManager(Constants.Package); - /** - * Array containing the safe characters set. - */ - protected static final URLEncoder urlEncoder; - private static final DocumentBuilderFactory factory; private static final SecureEntityResolver secureEntityResolver; @@ -162,13 +157,6 @@ public class DefaultServlet extends Http // ----------------------------------------------------- Static Initializer static { - urlEncoder = new URLEncoder(); - urlEncoder.addSafeCharacter('-'); - urlEncoder.addSafeCharacter('_'); - urlEncoder.addSafeCharacter('.'); - urlEncoder.addSafeCharacter('*'); - urlEncoder.addSafeCharacter('/'); - if (Globals.IS_SECURITY_ENABLED) { factory = DocumentBuilderFactory.newInstance(); factory.setNamespaceAware(true); @@ -678,7 +666,7 @@ public class DefaultServlet extends Http * @param path Path which has to be rewritten */ protected String rewriteUrl(String path) { - return urlEncoder.encode( path ); + return URLEncoder.DEFAULT.encode( path ); } Modified: tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java?rev=1644768&r1=1644767&r2=1644768&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java (original) +++ tomcat/trunk/java/org/apache/catalina/util/URLEncoder.java Thu Dec 11 21:16:00 2014 @@ -38,6 +38,16 @@ public class URLEncoder { {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + public static final URLEncoder DEFAULT = new URLEncoder(); + static { + DEFAULT.addSafeCharacter('~'); + DEFAULT.addSafeCharacter('-'); + DEFAULT.addSafeCharacter('_'); + DEFAULT.addSafeCharacter('.'); + DEFAULT.addSafeCharacter('*'); + DEFAULT.addSafeCharacter('/'); + } + //Array containing the safe characters set. protected final BitSet safeCharacters = new BitSet(256); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org