You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/09/04 09:57:06 UTC

[3/3] git commit: WICKET-4715 WebApplication doesn't recognize if an incoming request is multipart.

WICKET-4715 WebApplication doesn't recognize if an incoming request is multipart.

Re-check the already parsed FileItems for max size (set by the form).


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e08887d3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e08887d3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e08887d3

Branch: refs/heads/master
Commit: e08887d36d8478ae07a31f4f48e453e5adcbcfd9
Parents: 5468b0f
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Sep 4 09:53:51 2012 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Sep 4 09:56:50 2012 +0200

----------------------------------------------------------------------
 .../servlet/MultipartServletWebRequestImpl.java    |   16 +++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/e08887d3/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
index 80d8dec..055b31b 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/MultipartServletWebRequestImpl.java
@@ -35,6 +35,7 @@ import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.upload.DiskFileItemFactory;
 import org.apache.wicket.util.upload.FileItem;
 import org.apache.wicket.util.upload.FileItemFactory;
+import org.apache.wicket.util.upload.FileUploadBase;
 import org.apache.wicket.util.upload.FileUploadException;
 import org.apache.wicket.util.upload.ServletFileUpload;
 import org.apache.wicket.util.upload.ServletRequestContext;
@@ -402,6 +403,21 @@ public class MultipartServletWebRequestImpl extends MultipartServletWebRequest
 	public MultipartServletWebRequest newMultipartWebRequest(Bytes maxSize, String upload)
 		throws FileUploadException
 	{
+		for (Map.Entry<String, List<FileItem>> entry : files.entrySet())
+		{
+			List<FileItem> fileItems = entry.getValue();
+			for (FileItem fileItem : fileItems)
+			{
+				if (fileItem.getSize() > maxSize.bytes())
+				{
+					String fieldName = entry.getKey();
+					FileUploadException fslex = new FileUploadBase.FileSizeLimitExceededException("The field " +
+							fieldName + " exceeds its maximum permitted " + " size of " +
+							maxSize + " characters.", fileItem.getSize(), maxSize.bytes());
+					throw fslex;
+				}
+			}
+		}
 		return this;
 	}