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: [email protected]
For additional commands, e-mail: [email protected]