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 2016/09/06 21:26:11 UTC
svn commit: r1759515 -
/tomcat/trunk/java/org/apache/catalina/valves/rewrite/RewriteValve.java
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: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org