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(); }