1、
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
Object loginName = request.getSession().getAttribute("loginName");//比较简单,根据实际情况更改此处及登陆完成时session存储(第3点)。
if (null == loginName || !(loginName instanceof String)) {//此处为解决登陆页面只出现在iframe中问题,如果不存在可以砍掉。。
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<script>");
out.println("window.open ('" + request.getContextPath() + "/admin','_top')");
out.println("</script>");
out.println("</html>");
return false;
}
return true;
}
}
2、
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class LoginConfiguration implements WebMvcConfigurer{
@Override
public void addInterceptors(InterceptorRegistry registry) {
LoginInterceptor loginInterceptor = new LoginInterceptor();
InterceptorRegistration loginRegistry = registry.addInterceptor(loginInterceptor);
loginRegistry.addPathPatterns("/**");
loginRegistry.excludePathPatterns("/","/index.html","/css/**","/js/**","/image/**","/assets/**","/ueditor/**");//根据自己目录添加更改
loginRegistry.excludePathPatterns("/admin");//根据自己目录添加更改
loginRegistry.excludePathPatterns("/admin/login");//根据自己目录添加更改
}
}
3、
登陆完成时session存储:(比较简单,自行根据实际情况处置)
request.getSession().setAttribute("loginName","admin");