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 2017/05/04 18:29:49 UTC
svn commit: r1793844 - in /tomcat/trunk/java/org/apache/catalina:
authenticator/FormAuthenticator.java connector/CoyoteAdapter.java
connector/Request.java core/ApplicationHttpRequest.java
Author: markt
Date: Thu May 4 18:29:49 2017
New Revision: 1793844
URL: http://svn.apache.org/viewvc?rev=1793844&view=rev
Log:
Review of Parameters and query string encoding
Clean-up / clarification
No functional change
Modified:
tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
Modified: tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java?rev=1793844&r1=1793843&r2=1793844&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java (original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java Thu May 4 18:29:49 2017
@@ -590,8 +590,6 @@ public class FormAuthenticator
}
request.getCoyoteRequest().getParameters().recycle();
- request.getCoyoteRequest().getParameters().setQueryStringEncoding(
- request.getConnector().getURIEncoding());
ByteChunk body = saved.getBody();
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=1793844&r1=1793843&r2=1793844&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu May 4 18:29:49 2017
@@ -447,8 +447,7 @@ public class CoyoteAdapter implements Ad
res.setNote(ADAPTER_NOTES, response);
// Set query string encoding
- req.getParameters().setQueryStringEncoding
- (connector.getURIEncoding());
+ req.getParameters().setQueryStringEncoding(connector.getURIEncoding());
}
try {
Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1793844&r1=1793843&r2=1793844&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Thu May 4 18:29:49 2017
@@ -3134,13 +3134,14 @@ public class Request implements HttpServ
parameters.setQueryStringEncoding(enc);
}
} else {
- parameters.setEncoding
- (org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING);
+ parameters.setEncoding(org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING);
if (useBodyEncodingForURI) {
- parameters.setQueryStringEncoding
- (org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING);
+ parameters.setQueryStringEncoding(
+ org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING);
}
}
+ // Note: If !useBodyEncodingForURI, the query string encoding is
+ // that set towards the start of CoyoyeAdapter.service()
parameters.handleQueryParameters();
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java?rev=1793844&r1=1793843&r2=1793844&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java Thu May 4 18:29:49 2017
@@ -871,6 +871,12 @@ class ApplicationHttpRequest extends Htt
MessageBytes queryMB = MessageBytes.newInstance();
queryMB.setString(queryParamString);
+ // TODO
+ // - Should only use body encoding if useBodyEncodingForURI is true
+ // - Otherwise, should use URIEncoding
+ // - The problem is that the connector is not available...
+ // - To add to the fun, the URI default changed in Servlet 4.0 to UTF-8
+
String encoding = getCharacterEncoding();
// No need to process null value, as ISO-8859-1 is the default encoding
// in MessageBytes.toBytes().
@@ -878,7 +884,8 @@ class ApplicationHttpRequest extends Htt
try {
queryMB.setCharset(B2CConverter.getCharset(encoding));
} catch (UnsupportedEncodingException ignored) {
- // Fall-back to ISO-8859-1
+ // Fall-back to default (ISO-8859-1)
+ encoding = null;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org