content: package com.ruoyi.common.filter;
  
  import java.io.IOException;
  import javax.servlet.Filter;
  import javax.servlet.FilterChain;
  import javax.servlet.FilterConfig;
  import javax.servlet.ServletException;
  import javax.servlet.ServletRequest;
  import javax.servlet.ServletResponse;
  import javax.servlet.http.HttpServletRequest;
  import org.springframework.http.MediaType;
  import com.ruoyi.common.utils.StringUtils;
  
  /**
   * Repeatable 过滤器
   * 
   * @author ruoyi
   */
  public class RepeatableFilter implements Filter
  {
      @Override
      public void init(FilterConfig filterConfig) throws ServletException
      {
  
      }
  
      @Override
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
              throws IOException, ServletException
      {
          ServletRequest requestWrapper = null;
          if (request instanceof HttpServletRequest
                  && StringUtils.startsWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE))
          {
              requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response);
          }
          if (null == requestWrapper)
          {
              chain.doFilter(request, response);
          }
          else
          {
              chain.doFilter(requestWrapper, response);
          }
      }
  
      @Override
      public void destroy()
      {
  
      }
  }
  