Author: jfrederic.clere(a)jboss.com
Date: 2008-06-19 14:04:17 -0400 (Thu, 19 Jun 2008)
New Revision: 677
Modified:
trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
trunk/java/org/apache/catalina/connector/Request.java
Log:
Fix JBAS-5645
Modified: trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java
===================================================================
--- trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java 2008-06-19
17:12:53 UTC (rev 676)
+++ trunk/java/org/apache/catalina/authenticator/FormAuthenticator.java 2008-06-19
18:04:17 UTC (rev 677)
@@ -430,7 +430,8 @@
if ("POST".equalsIgnoreCase(saved.getMethod())) {
ByteChunk body = saved.getBody();
- if (body != null) {
+ if (body != null && body.getLength() > 0) {
+ request.clearParameters();
request.getCoyoteRequest().action
(ActionCode.ACTION_REQ_SET_BODY_REPLAY, body);
@@ -445,6 +446,16 @@
contentType.setString(savedContentType);
request.getCoyoteRequest().setContentType(contentType);
+
+ } else {
+ // Restore the parameters.
+ Iterator params = saved.getParameterNames();
+ while (params.hasNext()) {
+ String name = (String) params.next();
+ request.addParameter(name,
+ saved.getParameterValues(name));
+ }
+
}
}
request.getCoyoteRequest().method().setString(saved.getMethod());
@@ -504,6 +515,16 @@
}
saved.setContentType(request.getContentType());
saved.setBody(body);
+
+ if (body.getLength() == 0) {
+ // It means that parameters have already been parsed.
+ Enumeration e = request.getParameterNames();
+ for ( ; e.hasMoreElements() ;) {
+ String name = (String) e.nextElement();
+ String[] val = request.getParameterValues(name);
+ saved.addParameter(name, val);
+ }
+ }
}
saved.setMethod(request.getMethod());
Modified: trunk/java/org/apache/catalina/connector/Request.java
===================================================================
--- trunk/java/org/apache/catalina/connector/Request.java 2008-06-19 17:12:53 UTC (rev
676)
+++ trunk/java/org/apache/catalina/connector/Request.java 2008-06-19 18:04:17 UTC (rev
677)
@@ -1590,7 +1590,7 @@
* Clear the collection of parameters associated with this Request.
*/
public void clearParameters() {
- // Not used
+ parametersParsed = false;
}
Show replies by date