springboot如何使用拦截器判断是否登录

  介绍

这期内容当中小编将会给大家带来有关springboot如何使用拦截器判断是否登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

springboot拦截器判断是否登录

实现拦截器的两个步骤

<李>

自定义拦截器实现HandlerInterceptor接口

<李>

创建一个配置类继承WebMvcConfigurerAdapter类并重写addInterceptors方法

代码:

1,自定义拦截器

@ component   public  class  AdminLoginInterceptor  implements  HandlerInterceptor  {,//,,,,在请求处理之前调用,只有返回真实才会执行请求   ,,@Override   ,,,public  boolean  preHandle (HttpServletRequest  httpServletRequest, HttpServletResponse  httpServletResponse,, Object  o), throws  Exception  {//,,,,,,,,得到会话   ,,,,,,,HttpSession  session =, httpServletRequest.getSession(真正的);//,,,,,,,,得到对象   ,,,,,,,Object  admin =, session.getAttribute (“admin");//,,,,,,,,判断对象是否存在   ,,,,,,,如果(admin !=null) {   ,,,,,,,,,,,return 真实;   ,,,,,,,其他}{//,,,,,,,,,,,,不存在则跳转到登录页   ,,,,,,,,,,,httpServletResponse.sendRedirect (httpServletRequest.getContextPath() +“/登录/adminLogin");   ,,,,,,,,,,,return 假;   ,,,,,,,}   ,,,}   ,//,,,,试图渲染之后执行   ,,@Override   ,,,public  void  postHandle (HttpServletRequest  httpServletRequest, HttpServletResponse  httpServletResponse,, Object 啊,,ModelAndView  modelAndView), throws  Exception  {,   ,,,}   ,//,,,,在请求处理之后,视图渲染之前执行   ,,@Override   ,,,public  void  afterCompletion (HttpServletRequest  httpServletRequest, HttpServletResponse  httpServletResponse,, Object 啊,,Exception  e), throws  Exception  {   ,   ,,,}   }

2,自定义配置类继承WebMvcConfigurerAdapter

@SpringBootConfiguration   public  class  AdminLoginAdapter  extends  WebMvcConfigurerAdapter  {,   ,,@ autowired   ,,,AdminLoginInterceptor  adminLoginInterceptor;   ,   ,,@Override   ,,,public  void  addInterceptors (InterceptorRegistry 注册),{   ,,,,,,,registry.addInterceptor (adminLoginInterceptor) .addPathPatterns (“/admin/* *“) .excludePathPatterns(“/登录/* *“);   ,,,,,,,super.addInterceptors(注册表);   ,,,}   }

springboot增加拦截器判断是否登录

1,创建拦截器

package  com.example.demo.interceptor;   import  org.slf4j.Logger;   import  org.slf4j.LoggerFactory;   import  org.springframework.web.servlet.HandlerInterceptor;   import  org.springframework.web.servlet.ModelAndView;   import  javax.servlet.http.HttpServletRequest;   import  javax.servlet.http.HttpServletResponse;   import  javax.servlet.http.HttpSession;/* *   ,* <一句话功能简述> & lt; br>   ,* <拦截器>   ,*   ,* @author 丶Zh2Guo   ,* @create  2018/11/22   ,* @since  1.0.0   ,*/public  class  LoginInterceptor  implements  HandlerInterceptor  {   ,,,private  Logger  Logger =, LoggerFactory.getLogger (LoginInterceptor.class);   ,,,//,在请求处理之前,只有返回真实才会执行请求   ,,@Override   ,,,public  boolean  preHandle (HttpServletRequest 请求,HttpServletResponse 反应,Object 处理程序),throws  Exception  {   ,,,,,,,logger.info(“[拦截器)启动登录状态拦截“);   ,,,,,,,//,得到会话   ,,,,,,,HttpSession  session =, request.getSession ();   ,,,,,,,logger.info(“[拦截器]sessionID:“, +, session.getId ());   ,,,,,,,//,得到用户信息   ,,,,,,,Object  userInfo =, session.getAttribute (“userInfo");   ,,,,,,,//判断用户是否登录   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

springboot如何使用拦截器判断是否登录