package web.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.apache.commons.lang.StringUtils;
|
|
/**
|
* 用户输入字符校验的过滤器
|
*
|
* @author lqiang
|
*
|
*/
|
public class InputFilter implements Filter {
|
|
private String[] paths = {};
|
|
@Override
|
public void destroy() {
|
// TODO Auto-generated method stub
|
}
|
|
@Override
|
public void doFilter(ServletRequest request, ServletResponse response,
|
FilterChain filterChain) throws IOException, ServletException {
|
boolean isPattern = false;
|
HttpServletRequest req = (HttpServletRequest) request;
|
String reqUri = req.getRequestURI();
|
if (StringUtils.isNotBlank(reqUri) && paths.length != 0) {
|
for (String path : paths) {
|
if (reqUri.indexOf(path) != -1) {
|
isPattern = true;
|
break;
|
}
|
}
|
}
|
if (isPattern) {
|
filterChain.doFilter(req, response);
|
} else {
|
filterChain.doFilter(new InputRequestWrapper(req), response);
|
}
|
}
|
|
@Override
|
public void init(FilterConfig arg0) throws ServletException {
|
String excludePath = arg0.getInitParameter("excludePath");
|
if (StringUtils.isNotBlank(excludePath)) {
|
paths = excludePath.split(",");
|
}
|
|
}
|
|
}
|