package com.landtool.lanbase.common.xss;
|
|
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.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
/**
|
* @author lanbase
|
* @Description: TODO(XSS过滤)
|
* @date 2017-6-23 15:07
|
*/
|
public class XssFilter implements Filter {
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
// 排除的url
|
private String exclude;
|
|
public XssFilter(String exclude) {
|
this.exclude = exclude;
|
}
|
|
@Override
|
public void init(FilterConfig config) throws ServletException {
|
}
|
|
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
throws IOException, ServletException {
|
HttpServletRequest httpRequest = (HttpServletRequest) request;
|
String uri=httpRequest.getRequestURI();
|
logger.debug("doFilter----uri:" + uri);
|
if(uri.indexOf(".") == -1 && !uri.contains(exclude)){
|
XssHttpServletRequestWrapper xssRequest = new XssHttpServletRequestWrapper((HttpServletRequest) request);
|
chain.doFilter(xssRequest, response);
|
}else{
|
chain.doFilter(request, response);
|
}
|
}
|
|
@Override
|
public void destroy() {
|
}
|
|
}
|