Author: markt
Date: Tue Sep 6 21:26:11 2016
New Revision: 1759515
URL: http://svn.apache.org/viewvc?rev=1759515&view=rev
Log:
Revert original fix for Bug 60013
Modified:
tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.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=1759515&r1=1759514&r2=1759515&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java Tue
Sep 6 21:26:11 2016
@@ -53,15 +53,6 @@ import org.apache.tomcat.util.http.Reque
public class RewriteValve extends ValveBase {
- private static final URLEncoder QUERY_STRING_ENCODER;
-
- static {
- QUERY_STRING_ENCODER = new URLEncoder();
- QUERY_STRING_ENCODER.addSafeCharacter('=');
- QUERY_STRING_ENCODER.addSafeCharacter('&');
- }
-
-
/**
* The rewrite rules that the valve will use.
*/
@@ -332,26 +323,15 @@ public class RewriteValve extends ValveB
// - redirect (code)
if (rule.isRedirect() && newtest != null) {
// append the query string to the url if there is one and
it hasn't been rewritten
- String originalQueryString = request.getQueryString();
+ String queryString = request.getQueryString();
StringBuffer urlString = new StringBuffer(url);
- int index = urlString.indexOf("?");
- String encodedUrl;
- if (index == -1) {
- encodedUrl =
URLEncoder.DEFAULT.encode(urlString.toString(), "UTF-8");
- urlString.setLength(0);
- urlString.append(encodedUrl);
- } else {
- encodedUrl = URLEncoder.DEFAULT.encode(
- urlString.substring(0, index), "UTF-8");
- urlString.delete(0, index);
- urlString.insert(0, encodedUrl);
- }
- if (originalQueryString != null &&
originalQueryString.length() > 0) {
+ if (queryString != null && queryString.length() > 0) {
+ int index = urlString.indexOf("?");
if (index != -1) {
// if qsa is specified append the query
if (rule.isQsappend()) {
urlString.append('&');
- urlString.append(originalQueryString);
+ urlString.append(queryString);
}
// if the ? is the last character delete it, its
only purpose was to
// prevent the rewrite module from appending the
query string
@@ -360,7 +340,7 @@ public class RewriteValve extends ValveB
}
} else {
urlString.append('?');
- urlString.append(originalQueryString);
+ urlString.append(queryString);
}
}
@@ -472,13 +452,10 @@ public class RewriteValve extends ValveB
request.getCoyoteRequest().decodedURI().toChars();
// Set the new Query if there is one
if (queryString != null) {
- // TODO: This isn't perfect. There are some edge cases
- // that can only be handled if RewriteValve works
- // with the original (undecoded) URI
request.getCoyoteRequest().queryString().setString(null);
chunk =
request.getCoyoteRequest().queryString().getCharChunk();
chunk.recycle();
- chunk.append(QUERY_STRING_ENCODER.encode(queryString,
"UTF-8"));
+ chunk.append(queryString);
request.getCoyoteRequest().queryString().toChars();
}
// Set the new host if it changed
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]