@WebFilter(filterName="loginFilter",urlPatterns="/*")
@Slf4j
public class LoginFilter implements Filter {
private static String[] passUrls =ignoreURL.split(",");
private String ignoreURL="login,login.do,login.jsp,css,js,javascript,image,images,font,favicon.ico,actuator,/swagger,/v2/api-docs";
private String ctxPath = null;
private static String redirectUrl = "/login.html";
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String url = request.getRequestURI();
String subUrl = url.substring(ctxPath.length() + 1);
for (String urlStr : passUrls) {
if (subUrl.indexOf(urlStr) > -1) {
filterChain.doFilter(request, response);
return;
}
}
HttpSession session = request.getSession();
Object user = session.getAttribute(SmpConst.SESSION_KEY_USERNAME);
if (user != null) {
filterChain.doFilter(request, response);
} else {
response.sendRedirect(ctxPath + "/" + redirectUrl);
}
}
}
Start the class to add scan annotations
@ServletComponentScan(basePackages="com.dyn.**")