This is an automated email from the ASF dual-hosted git repository.

reiern70 pushed a commit to branch reiern70/WICKET-7154
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 8dcaafec3c6952476637b9252544be7e404a0d3c
Author: reiern70 <[email protected]>
AuthorDate: Sat May 10 20:14:07 2025 -0500

    [WICKET-7154] use getQueryParameters to avoid tomcat parsing the multipart 
request before we create MultipartServletWebRequest.
---
 .../resource/AbstractFileUploadResource.java       | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/resource/AbstractFileUploadResource.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/resource/AbstractFileUploadResource.java
index eaf4af213c..db41c1cb40 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/resource/AbstractFileUploadResource.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/resource/AbstractFileUploadResource.java
@@ -94,7 +94,7 @@ public abstract class AbstractFileUploadResource extends 
AbstractResource
                final ServletWebRequest webRequest = (ServletWebRequest) 
attributes.getRequest();
 
                // get the ID of the upload field (it should be unique per 
application)
-               String uploadId = 
webRequest.getRequestParameters().getParameterValue(UPLOAD_ID).toString("resource");
+               String uploadId = getUploadId(webRequest);
 
                Bytes maxSize = getMaxSize(webRequest);
                Bytes fileMaxSize = getFileMaxSize(webRequest);
@@ -253,7 +253,8 @@ public abstract class AbstractFileUploadResource extends 
AbstractResource
        {
                try
                {
-                       return 
Bytes.bytes(webRequest.getRequestParameters().getParameterValue("maxSize").toLong());
+                       // WICKET-7154 we need to avoid reading POST parameters
+                       return 
Bytes.bytes(webRequest.getQueryParameters().getParameterValue("maxSize").toLong());
                }
                catch (StringValueConversionException e)
                {
@@ -269,10 +270,22 @@ public abstract class AbstractFileUploadResource extends 
AbstractResource
         */
        private Bytes getFileMaxSize(ServletWebRequest webRequest)
        {
-               long fileMaxSize = 
webRequest.getRequestParameters().getParameterValue("fileMaxSize").toLong(-1);
+               // WICKET-7154 we need to avoid reading POST parameters
+               long fileMaxSize = 
webRequest.getQueryParameters().getParameterValue("fileMaxSize").toLong(-1);
                return fileMaxSize > 0 ? Bytes.bytes(fileMaxSize) : null;
        }
 
+       /**
+        * Defines what is the maximum size of an uploaded file.
+        *
+        * @return Bytes
+        */
+       private String getUploadId(ServletWebRequest webRequest)
+       {
+               // WICKET-7154 we need to avoid reading POST parameters
+               return 
webRequest.getQueryParameters().getParameterValue(UPLOAD_ID).toString("upload");
+       }
+
        /**
         * Defines what is the maximum size of an uploaded file.
         *
@@ -280,7 +293,8 @@ public abstract class AbstractFileUploadResource extends 
AbstractResource
         */
        private long getFileCountMax(ServletWebRequest webRequest)
        {
-               return 
webRequest.getRequestParameters().getParameterValue("fileCountMax").toLong(-1);
+               // WICKET-7154 we need to avoid reading POST parameters
+               return 
webRequest.getQueryParameters().getParameterValue("fileCountMax").toLong(-1);
        }
 
        /**

Reply via email to