博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 增加 拦截器 判断是否登录
阅读量:5035 次
发布时间:2019-06-12

本文共 4641 字,大约阅读时间需要 15 分钟。

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;/** * 〈一句话功能简述〉
* 〈拦截器〉 * * @author 丶Zh1Guo * @create 2018/11/22 * @since 1.0.0 */public class LoginInterceptor implements HandlerInterceptor { private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class); // 在请求处理之前,只有返回true才会执行请求 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { logger.info("[拦截器]启动登录状态拦截"); // 得到session HttpSession session = request.getSession(); logger.info("[拦截器]sessionID:" + session.getId()); // 得到用户信息 Object userInfo = session.getAttribute("userInfo"); //判断用户是否登录 if (userInfo != null) { logger.info("[拦截器]用户已经登录,用户名,密码:" + session.getAttribute("userInfo")); return true; } else { //不存在跳转至登录页 response.sendRedirect(request.getContextPath() + "/"); // 跳转到首页登录 logger.info("[拦截器]用户没有登录,已跳转到:" + request.getContextPath() + "/"); return false; } } // 视图渲染后执行 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } // 请求处理后,视图渲染前 @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { }}

2、.继承WebMvcConfigureAdapter类,覆盖其addInterceptors接口,注册自定义的拦截器

@Configuration 注解一定要有
package com.example.demo.interceptor;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * 〈一句话功能简述〉
* 〈自定义配置类〉 * * @author 丶Zh1Guo * @create 2018/11/22 * @since 1.0.0 */@Configurationpublic class LoginConfig implements WebMvcConfigurer { /** * 该方法用于注册拦截器 * 可注册多个拦截器,多个拦截器组成一个拦截器链 */ @Override public void addInterceptors(InterceptorRegistry registry) { // addPathPatterns 添加路径 // excludePathPatterns 排除路径 registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/sys/*"); // 拦截sys路径下的url// .excludePathPatterns(""); }}

3、LoginController

/** * Copyright (C), 2017-2018, XXX有限公司 * FileName: LoginController * Author:   丶Zh1Guo * Date:     2018/11/22 11:10 * Description: 登录 * History: * 

4、未登录会自动跳转到登录页面

 

转载于:https://www.cnblogs.com/wangzh1guo/p/10001649.html

你可能感兴趣的文章
分享Java web 开发必游之路
查看>>
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题(转载)
查看>>
Bean的Scope
查看>>
【BZOJ】3142: [Hnoi2013]数列
查看>>
http初探
查看>>
elasticsearch的安装
查看>>
__next__()
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
UpdatePanel 内控件 更新“外的”控件【转】
查看>>
[CF508E] Arthur and Brackets
查看>>
[CF1029E] Tree with Small Distances
查看>>
tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)
查看>>
美团推荐算法实践
查看>>
mybatis中>=和<=的实现方式
查看>>
C++程序设计入门 引用和动态内存管理学习
查看>>
泛型的应用
查看>>
css的定位特性-position、float、display
查看>>
MySQL(三)用正则表达式搜索
查看>>
codevs 1058 合唱队形
查看>>