修复Myfilter 里重复读引入的www 的body传不到后端的问题

This commit is contained in:
weiweiw 2024-09-23 18:00:30 +08:00
parent 537cfe5c9b
commit 4f73e93990
3 changed files with 9 additions and 3 deletions

View File

@ -25,7 +25,8 @@ public class MyFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
if (SystemGlobal.POST.equals(request.getMethod()) || SystemGlobal.PUT.equals(request.getMethod()) ){
// System.out.print("MyFilter doFilterInternal");
if (SystemGlobal.POST.equals(request.getMethod()) || SystemGlobal.PUT.equals(request.getMethod()) ){
//去除文件上传
String header = request.getHeader(HttpHeaders.CONTENT_TYPE);
if(StringUtils.isNotEmpty(header)){
@ -35,7 +36,7 @@ public class MyFilter extends OncePerRequestFilter {
}
}
//解决 无法流重复读取的问题
ReadHttpRequestWrapper requestWrapper = new ReadHttpRequestWrapper(request);
ReadHttpRequestWrapper requestWrapper = new ReadHttpRequestWrapper(request, request.getParameterMap());
filterChain.doFilter(requestWrapper, response);
}else{
filterChain.doFilter(request, response);

View File

@ -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<String, String[]> parameters;
/**
*
* @param request
*/
public ReadHttpRequestWrapper(HttpServletRequest request) throws IOException {
public ReadHttpRequestWrapper(HttpServletRequest request,Map<String, String[]> 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();
}

View File

@ -1,3 +1,4 @@
#com.bonus.common.security.config.MyFilter
com.bonus.common.security.config.WebMvcConfig
com.bonus.common.security.config.VerificationCodeConfig
com.bonus.common.security.service.TokenService