From d3e94e10f97eb81327c1bb200994837cfc7cbab9 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Fri, 19 Jul 2024 09:34:14 +0800 Subject: [PATCH] =?UTF-8?q?nacos=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=88=B7=E5=8F=8A=E6=95=B0=E6=8D=AE=E5=BA=93=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bonus/common/security/config/MyFilter.java | 8 +++++--- .../security/interceptor/ReadHttpRequestWrapper.java | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/config/MyFilter.java b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/config/MyFilter.java index 496dd73..38f3b7c 100644 --- a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/config/MyFilter.java +++ b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/config/MyFilter.java @@ -15,6 +15,7 @@ import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Map; import static cn.hutool.http.Method.POST; import static jdk.nashorn.internal.runtime.PropertyDescriptor.GET; @@ -29,14 +30,15 @@ public class MyFilter extends OncePerRequestFilter { //去除文件上传 String header = request.getHeader(HttpHeaders.CONTENT_TYPE); if(StringUtils.isNotEmpty(header)){ - if(header.contains(MediaType.MULTIPART_FORM_DATA_VALUE)){ + if(header.contains(MediaType.MULTIPART_FORM_DATA_VALUE) && header.contains(MediaType.APPLICATION_FORM_URLENCODED_VALUE)){ filterChain.doFilter(request, response); return; } } + Map parameters = request.getParameterMap(); //解决 无法流重复读取的问题 - ReadHttpRequestWrapper requestWrapper = new ReadHttpRequestWrapper(request); - filterChain.doFilter(requestWrapper, response); + request = new ReadHttpRequestWrapper(request,parameters); + filterChain.doFilter(request, response); }else{ filterChain.doFilter(request, response); } diff --git a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/interceptor/ReadHttpRequestWrapper.java b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/interceptor/ReadHttpRequestWrapper.java index 1ecc671..8d0b7c0 100644 --- a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/interceptor/ReadHttpRequestWrapper.java +++ b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/interceptor/ReadHttpRequestWrapper.java @@ -8,6 +8,7 @@ import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.util.Map; /** * @@ -17,11 +18,13 @@ public class ReadHttpRequestWrapper extends HttpServletRequestWrapper { private final String body; + private final Map parameters; + /** * * @param request */ - public ReadHttpRequestWrapper(HttpServletRequest request) throws IOException { + public ReadHttpRequestWrapper(HttpServletRequest request,Map parameters) throws IOException { super(request); StringBuilder sb = new StringBuilder(); BufferedReader reader = request.getReader(); @@ -29,6 +32,7 @@ public class ReadHttpRequestWrapper extends HttpServletRequestWrapper { while((readCount = reader.readLine()) != null){ sb.append(readCount); } + this.parameters = parameters; body = sb.toString(); }