From: markt Date: Tue, 8 May 2007 23:58:24 +0000 (+0000) Subject: Fix bug 42361. Handle multi-part forms when saving request during FORM auth. Patch... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=c44959547bf859a7140f734cba568b9a25884cee;p=tomcat7.0 Fix bug 42361. Handle multi-part forms when saving request during FORM auth. Patch provided by Peter Runge. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@536381 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/authenticator/FormAuthenticator.java b/java/org/apache/catalina/authenticator/FormAuthenticator.java index f47673dc0..62bf5eee9 100644 --- a/java/org/apache/catalina/authenticator/FormAuthenticator.java +++ b/java/org/apache/catalina/authenticator/FormAuthenticator.java @@ -428,7 +428,14 @@ public class FormAuthenticator // Set content type MessageBytes contentType = MessageBytes.newInstance(); - contentType.setString("application/x-www-form-urlencoded"); + + //If no content type specified, use default for POST + String savedContentType = saved.getContentType(); + if (savedContentType == null) { + savedContentType = "application/x-www-form-urlencoded"; + } + + contentType.setString(savedContentType); request.getCoyoteRequest().setContentType(contentType); } } @@ -487,6 +494,7 @@ public class FormAuthenticator while ( (bytesRead = is.read(buffer) ) >= 0) { body.append(buffer, 0, bytesRead); } + saved.setContentType(request.getContentType()); saved.setBody(body); } diff --git a/java/org/apache/catalina/authenticator/SavedRequest.java b/java/org/apache/catalina/authenticator/SavedRequest.java index 4602b4d31..1eac45143 100644 --- a/java/org/apache/catalina/authenticator/SavedRequest.java +++ b/java/org/apache/catalina/authenticator/SavedRequest.java @@ -180,4 +180,17 @@ public final class SavedRequest { public void setBody(ByteChunk body) { this.body = body; } + + /** + * The content type of the request, used if this is a POST. + */ + private String contentType = null; + + public String getContentType() { + return (this.contentType); + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 7a0bc22eb..7b6aa06a6 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -14,6 +14,16 @@ +
+ + + + 42361: Handle multi-part forms when saving requests during + FORM authentication process. Patch provided by Peter Runge. (markt) + + + +