我的代码

public class WebLoginInterceptor implements HandlerInterceptor {@Autowiredprivate WeixinConfig weixinConfig;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String url = request.getRequestURI();System.out.println("WebLoginInterceptor:" + url);HttpSession session = request.getSession();UserWeb userWeb = (UserWeb) session.getAttribute(WebConst.SESSION_USER_WEB);if (userWeb != null) return true;/** 用户未登录则引导访问如下请求 */String redirect_uri = "http://tmos.s1.natapp.cc/web/cs/weixin/auth";String link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + weixinConfig.getAppID() + "&redirect_uri=" + redirect_uri + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";response.sendRedirect(link);return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {}
}
public class AdminLoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String url = request.getRequestURI();System.out.println("AdminLoginInterceptor:" + url);HttpSession session = request.getSession();UserAdmin userAdmin = (UserAdmin) session.getAttribute(WebConst.SESSION_USER_ADMIN);if (userAdmin != null) return true;response.sendRedirect("/admin/login");return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {}
}
@Configuration
public class LoginInterceptorConfigurer extends WebMvcConfigurerAdapter {@BeanWebLoginInterceptor webLoginInterceptor() {return new WebLoginInterceptor();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 多个拦截器组成一个拦截器链// addPathPatterns 用于添加拦截规则// excludePathPatterns 用户排除拦截registry.addInterceptor(webLoginInterceptor()).addPathPatterns("/web/**").excludePathPatterns("/web/cs/weixin/auth").excludePathPatterns("/web/map/**");registry.addInterceptor(new AdminLoginInterceptor()).addPathPatterns("/admin/**").excludePathPatterns("/admin/login");super.addInterceptors(registry);}
}

转载于:https://www.cnblogs.com/bobi1234/p/7783514.html

【tmos】SpringBoot登录拦截相关推荐

  1. springBoot 登录拦截器

    1.首选创建一个继承HandlerInterceptor的拦截器 import javax.servlet.http.HttpServletRequest; import javax.servlet. ...

  2. SpringBoot登录拦截器

    创建一个包叫:interceptor 新建一个类:LoginInterceptor,这个类需要是实现HandlerInterceptor 接口 public class LoginIntercepto ...

  3. springboot整合shiro和session的详细过程和自定义登录拦截器

    文章目录 1.shiro依赖 2.shiro配置 shiro过滤器配置: 关联自定义的其他管理器 自定义会话工厂: 3.登陆时记录用户信息 4.shiro一些工具类的学习 5.自定义登录拦截器 shi ...

  4. SpringBoot(三):最简版登录拦截案例

    SpringBoot实现登录拦截案例 准备jar包 在springboot中想要展示页面,必须导入thymeleaf依赖 <dependency><groupId>org.sp ...

  5. SpringBoot——使用拦截器拦截未登录用户

    前置知识SpringBoot配置拦截器基于HandlerInterceptor接口实现,关键三个方法 preHandle()执行目标之前 postHandle()执行目标之后 afterComplet ...

  6. Springboot实现登录拦截的三种方式

    文章目录 1. 登录认证 1.1 介绍 1.2 方式 1.3 扩展 2. 实现 2.1 项目结构以及前置准备 2.2 过滤器实现登录拦截 2.3 拦截器实现登录拦截 2.4 AOP+自定义注解实现 2 ...

  7. 七、SpringBoot——用户登录Demo(国际化、表单重复提交,登录拦截器)

    一.CURD的Demo 1开发前准备工作 新建一个SpringBoot工程 引入starter-web maven依赖 引入html页面和assert文件夹里的样式文件等等 2 实现访问登录页面 方式 ...

  8. springboot的登录拦截机制

    转自:https://blog.csdn.net/qq_26555463/article/details/78296103 如果是一个后台的管理项目的,有些东西是不能直接就可以访问的,必须要登录才可以 ...

  9. Vue + Spring Boot 项目实战(七):前端路由与登录拦截器

    文章目录 前言 一.前端路由 二.使用 History 模式 三.后端登录拦截器 3.1. LoginController 3.2. LoginInterceptor 3.3. WebConfigur ...

最新文章

  1. [C#参考]锁定lock
  2. mysql事务隔离级别 花_MySQL事务的隔离级别
  3. 【机器学习】特征预处理
  4. js判断是否是ie浏览器
  5. F# 与 WPF 之多语言实现MVVM(二)
  6. 哲理短文一则:揭示最好的成功法则
  7. Exchange 2010 迁移至Exchange 2013系列之一:系列架构介绍
  8. IDEA + Spring boot devtools 热部署 与 多实例启动
  9. 探索游戏开发中的关卡设计+游戏开发中的关卡草图设计【笔记】
  10. 头文件中extern “C”的理解
  11. 狄利克雷卷积_积性函数和狄利克雷卷积小结
  12. 【主板上各种接口和附属部件科普】
  13. 计算机处理器缓存参数,如何查看CPU型号和主频、缓存、接口等参数
  14. python如何实现电子邮件的发送
  15. assert()详解
  16. Openwrt安装ddns
  17. oracle10G 数据泵技术
  18. cocos creator入门教程(六)—— cc.Action使用
  19. ArcGIS线图层转面图层后,使面图层拥有线图层的属性
  20. 如何解决工业相机达不到标称帧率

热门文章

  1. DDD:用 “四色原型” 进行 “聚合设计”
  2. Lua笔记6 编译、执行与错误
  3. 关于request取中文字符串变?的解决办法
  4. ig服务器维护,IG夺冠遭无视后,LOL官方公开道歉:对不起,都是服务器的问题!...
  5. JAVA偏向锁的什么时候释放_Java中的偏向锁
  6. mysql if countif_关于EXCEL IF COUNTIF 在查找数据的用法
  7. C++、C#控制台应用程序暂停下来的方法
  8. php扩展swoole安装,php 安装swoole扩展
  9. 求列表最大元素不用max_python3实现从一个无序列表中求取连续元素之和中最大的和...
  10. opencv图像操作:读取,裁剪,保存,缩放,遍历和读取文件夹图片