From fba45e75a1f48620e66cd8b363db534a90040fa1 Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Tue, 25 Aug 2020 20:44:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:bug:=20=E5=8F=96=E6=B6=88=20LogUtils#isMul?= =?UTF-8?q?tipartContent=20=E6=96=B9=E6=B3=95=E5=8F=AA=E5=AF=B9Post=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E8=BF=9B=E8=A1=8C=E8=AF=B7=E6=B1=82=E7=9A=84?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hccake/ballcat/commom/log/util/LogUtils.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/ballcat-starters/ballcat-spring-boot-starter-log/src/main/java/com/hccake/ballcat/commom/log/util/LogUtils.java b/ballcat-starters/ballcat-spring-boot-starter-log/src/main/java/com/hccake/ballcat/commom/log/util/LogUtils.java index c7179bae..01f5ae64 100644 --- a/ballcat-starters/ballcat-spring-boot-starter-log/src/main/java/com/hccake/ballcat/commom/log/util/LogUtils.java +++ b/ballcat-starters/ballcat-spring-boot-starter-log/src/main/java/com/hccake/ballcat/commom/log/util/LogUtils.java @@ -104,9 +104,6 @@ public class LogUtils { * @return 是否是multipart/form-data请求 */ public boolean isMultipartContent(HttpServletRequest request) { - if (!HttpMethod.POST.name().equals(request.getMethod().toUpperCase())) { - return false; - } // 获取Content-Type String contentType = request.getContentType(); return (contentType != null) && (contentType.toLowerCase().startsWith("multipart/")); From 68f411bca5add36e856df87c1a2b6b3ea208152a Mon Sep 17 00:00:00 2001 From: b2baccline <23131013+b2baccline@users.noreply.github.com> Date: Tue, 25 Aug 2020 21:29:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E5=8C=85?= =?UTF-8?q?=E8=A3=85=20RequestBody=20=E5=AF=BC=E8=87=B4=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=A1=A8=E5=8D=95=E6=95=B0=E6=8D=AE=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/wrapper/RepeatBodyRequestWrapper.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/request/wrapper/RepeatBodyRequestWrapper.java b/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/request/wrapper/RepeatBodyRequestWrapper.java index 13d1b42e..38d2135f 100644 --- a/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/request/wrapper/RepeatBodyRequestWrapper.java +++ b/ballcat-common/ballcat-common-core/src/main/java/com/hccake/ballcat/common/core/request/wrapper/RepeatBodyRequestWrapper.java @@ -12,6 +12,7 @@ import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.util.Map; /** * @author Hccake @@ -23,8 +24,11 @@ public class RepeatBodyRequestWrapper extends HttpServletRequestWrapper { private final byte[] body; + private final Map parameterMap; + public RepeatBodyRequestWrapper(HttpServletRequest request) { super(request); + this.parameterMap = super.getParameterMap(); this.body = getByteBody(request); } @@ -69,4 +73,14 @@ public class RepeatBodyRequestWrapper extends HttpServletRequestWrapper { return body; } + /** + * 重写 getParameterMap() 方法 解决 undertow 中流被读取后,会进行标记,从而导致无法正确获取 body 中的表单数据的问题 + * @see io.undertow.servlet.spec.HttpServletRequestImpl#readStarted + * @return Map parameterMap + */ + @Override + public Map getParameterMap() { + return parameterMap; + } + } \ No newline at end of file