SpringBoot拦截器实现登录检查

编写一个拦截器实现HandlerInterceptor接口:

public class LoginInterceptor implements HandlerInterceptor {
    
    

    /**
     * 目标方法执行之前
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
    
        //登录检查
        HttpSession session = request.getSession();
        Object loginUser = session.getAttribute("loginUser");
        if (loginUser != null) {
    
    
            //放行
            return true;
        }
        //拦截
        return false;
    }

    /**
     * 目标方法执行完成之后
     * @param request
     * @param response
     * @param handler
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    
    

    }

    /**
     * 页面渲染以后
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
    

    }
}

把拦截器注册到容器中:

@Configuration
public class AdminWebConfig implements WebMvcConfigurer {
    
    

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    
    
        //指定拦截器
        registry.addInterceptor(new LoginInterceptor())
                //指定拦截所有请求
                .addPathPatterns("/**")
                //指定放行登录和注册请求
                .excludePathPatterns("/login", "register");
    }
}

猜你喜欢

转载自blog.csdn.net/lyc686/article/details/113097483