package org.jeecg.config.filter; import org.jeecg.common.constant.CommonConstant; import org.jeecg.config.sign.util.BodyReaderHttpServletRequestWrapper; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * 针对post请求,将HttpServletRequest包一层 保留body里的参数 * @Author taoYan * @Date 2022/4/25 19:19 **/ public class RequestBodyReserveFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { ServletRequest requestWrapper = null; if(servletRequest instanceof HttpServletRequest) { HttpServletRequest req = (HttpServletRequest) servletRequest; // POST请求类型,才获取POST请求体 if(CommonConstant.HTTP_POST.equals(req.getMethod())){ requestWrapper = new BodyReaderHttpServletRequestWrapper(req); } } if(requestWrapper == null) { filterChain.doFilter(servletRequest, servletResponse); } else { filterChain.doFilter(requestWrapper, servletResponse); } } }