修复Myfilter 里重复读引入的www 的body传不到后端的问题
This commit is contained in:
parent
537cfe5c9b
commit
4f73e93990
|
|
@ -25,7 +25,8 @@ public class MyFilter extends OncePerRequestFilter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
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);
|
String header = request.getHeader(HttpHeaders.CONTENT_TYPE);
|
||||||
if(StringUtils.isNotEmpty(header)){
|
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);
|
filterChain.doFilter(requestWrapper, response);
|
||||||
}else{
|
}else{
|
||||||
filterChain.doFilter(request, response);
|
filterChain.doFilter(request, response);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import java.io.BufferedReader;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -17,11 +18,13 @@ public class ReadHttpRequestWrapper extends HttpServletRequestWrapper {
|
||||||
|
|
||||||
private final String body;
|
private final String body;
|
||||||
|
|
||||||
|
private final Map<String, String[]> parameters;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
public ReadHttpRequestWrapper(HttpServletRequest request) throws IOException {
|
public ReadHttpRequestWrapper(HttpServletRequest request,Map<String, String[]> parameters) throws IOException {
|
||||||
super(request);
|
super(request);
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
BufferedReader reader = request.getReader();
|
BufferedReader reader = request.getReader();
|
||||||
|
|
@ -29,6 +32,7 @@ public class ReadHttpRequestWrapper extends HttpServletRequestWrapper {
|
||||||
while((readCount = reader.readLine()) != null){
|
while((readCount = reader.readLine()) != null){
|
||||||
sb.append(readCount);
|
sb.append(readCount);
|
||||||
}
|
}
|
||||||
|
this.parameters = parameters;
|
||||||
body = sb.toString();
|
body = sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#com.bonus.common.security.config.MyFilter
|
||||||
com.bonus.common.security.config.WebMvcConfig
|
com.bonus.common.security.config.WebMvcConfig
|
||||||
com.bonus.common.security.config.VerificationCodeConfig
|
com.bonus.common.security.config.VerificationCodeConfig
|
||||||
com.bonus.common.security.service.TokenService
|
com.bonus.common.security.service.TokenService
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue