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 2025/05/14 08:04:33 UTC

(wicket) branch master updated: WICKET-7154 Document the reason to read only the QUERY parameters in one place

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

mgrigorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new a32dc74a50 WICKET-7154 Document the reason to read only the QUERY parameters in one place
a32dc74a50 is described below

commit a32dc74a50cb8eef9f395ae791a3b38ba6df7bf4
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
AuthorDate: Wed May 14 11:03:24 2025 +0300

    WICKET-7154 Document the reason to read only the QUERY parameters in one place
    
    Signed-off-by: Martin Tzvetanov Grigorov <mg...@apache.org>
---
 .../resource/AbstractFileUploadResource.java       | 24 ++++++++++++++--------
 1 file changed, 15 insertions(+), 9 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 ffedb3ce04..50cf91ff85 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
@@ -31,8 +31,10 @@ import org.apache.wicket.markup.html.form.upload.FileUpload;
 import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
 import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.resource.AbstractResource;
 import org.apache.wicket.util.lang.Bytes;
+import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.StringValueConversionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -244,6 +246,14 @@ public abstract class AbstractFileUploadResource extends AbstractResource
 		}
 	}
 
+	// Use getQueryParameters() instead of getRequestParameters() to avoid reading POST parameters
+	// Consuming the POST parameters would cause the request to be empty when reading it as
+	// MultipartServletWebRequest
+	// See WICKET-7154 for more details
+	private StringValue getParameterValue(WebRequest request, String parameterName) {
+		return request.getQueryParameters().getParameterValue(parameterName);
+	}
+
 	/**
 	 * Defines what is the maximum (total) size  of the uploaded files.
 	 *
@@ -253,8 +263,7 @@ public abstract class AbstractFileUploadResource extends AbstractResource
 	{
 		try
 		{
-			// WICKET-7154 we need to avoid reading POST parameters
-			return Bytes.bytes(webRequest.getQueryParameters().getParameterValue("maxSize").toLong());
+			return Bytes.bytes(getParameterValue(webRequest, "maxSize").toLong());
 		}
 		catch (StringValueConversionException e)
 		{
@@ -270,8 +279,7 @@ public abstract class AbstractFileUploadResource extends AbstractResource
 	 */
 	private Bytes getFileMaxSize(ServletWebRequest webRequest)
 	{
-		// WICKET-7154 we need to avoid reading POST parameters
-		long fileMaxSize = webRequest.getQueryParameters().getParameterValue("fileMaxSize").toLong(-1);
+		long fileMaxSize = getParameterValue(webRequest, "fileMaxSize").toLong(-1);
 		return fileMaxSize > 0 ? Bytes.bytes(fileMaxSize) : null;
 	}
 
@@ -282,8 +290,7 @@ public abstract class AbstractFileUploadResource extends AbstractResource
 	 */
 	private String getUploadId(ServletWebRequest webRequest)
 	{
-		// WICKET-7154 we need to avoid reading POST parameters
-		return webRequest.getQueryParameters().getParameterValue(UPLOAD_ID).toString("upload");
+		return getParameterValue(webRequest, UPLOAD_ID).toString("upload");
 	}
 
 	/**
@@ -293,8 +300,7 @@ public abstract class AbstractFileUploadResource extends AbstractResource
 	 */
 	private long getFileCountMax(ServletWebRequest webRequest)
 	{
-		// WICKET-7154 we need to avoid reading POST parameters
-		return webRequest.getQueryParameters().getParameterValue("fileCountMax").toLong(-1);
+		return getParameterValue(webRequest, "fileCountMax").toLong(-1);
 	}
 
 	/**
@@ -311,4 +317,4 @@ public abstract class AbstractFileUploadResource extends AbstractResource
 	protected abstract String generateJsonResponse(ResourceResponse resourceResponse,
 			ServletWebRequest webRequest, List<FileUpload> files);
 
-}
\ No newline at end of file
+}