一个简单的java登陆拦截

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");

猜你喜欢

转载自www.cnblogs.com/tyrone-vip/p/12005913.html