You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
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.equalsAnyIgnoreCase(request.getContentType(), |
|
MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE)) |
|
{ |
|
requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); |
|
} |
|
if (null == requestWrapper) |
|
{ |
|
chain.doFilter(request, response); |
|
} |
|
else |
|
{ |
|
chain.doFilter(requestWrapper, response); |
|
} |
|
} |
|
|
|
@Override |
|
public void destroy() |
|
{ |
|
|
|
} |
|
}
|
|
|