@Component
@WebFilter(filterName = “authFilter”, urlPatterns = “/*”)
public class LogonFilter implements Filter {
private static Logger log = LoggerFactory.getLogger(LogonFilter.class);
public void destroy() {
log.info("过滤器注销!");
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String[] paths = new String[]{ "/auth/login",".css",".ico",".jpg",".png"};
String sp = request.getServletPath();
for (String path : paths) {
if (sp.indexOf(path)>=0) {
log.debug("过滤器配置允许放行的请求! "+sp);
chain.doFilter(request, response);
return;
}
}
HttpSession session = request.getSession();
LoginUser user = (LoginUser) session.getAttribute(Const.SessionLoginUserKey.getkeyName());
if (user == null) {
log.info("+未登录的请求!"+((HttpServletRequest) req).getServletPath());
R<Map> result = R.create(new HashMap());
result.setSuccess(false);
result.setCode(-9);
result.setMsg("非法请求请先登录!");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
response.getWriter().write(JSONObject.toJSON(result).toString());
response.getWriter().flush();
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
log.info("过滤器初始化!");
}
}