Spring boot拦截器登录检查
拦截器
进行登录检查
从登录页面跳转到成功页面之后
为了防止表单重复提交
配置视图映射,利用重定向到成功页面
此时,在浏览器直接输入,配置的视图映射地址
也可以直接映射、跳转到成功页面
登录页面,也就失去意义了
添加拦截器,进行登录检查
通过Session检查登录请求
没有登录的用户,不能访问后台主页
当登录成功之后,把用户信息存放到Session中
session.setAttribute("loginUser", username);
LoginHandlerInterceptor
自定义拦截器,必须HandlerInterceptor接口
在目标方法执行之前,获取Session
从Session中,获取用户登录信息
如果,已经登录,放行
如果,未登录,返回登录页面
public class LoginHandlerInterceptor implements HandlerInterceptor {//目标方法执行之前@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {Object user = request.getSession().getAttribute("loginUser");if(user == null){//未登陆,返回登陆页面request.setAttribute("msg","没有权限请先登陆");request.getRequestDispatcher("/index.html").forward(request,response);return false;}else{//已登陆,放行请求return true;}}@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 {}
}
返回登录页面
获取转发器,转发请求到视图映射器,登录页面
request.getRequestDispatcher(“/index.html”).forward(request,response);
显示错误消息
request.setAttribute("msg","没有权限请先登陆");
注册拦截器
addInterceptors
拦截除了访问登录页面的所有请求
/**,表示任意路径下的任意请求
excludePathPatterns,表示排除哪些请求
静态资源
之前Spring MVC配置拦截器,需要排除静态资源的请求
Spring boot已经做好而来静态资源映射
不需要进行处理,静态资源也可以正常访问
//所有的WebMvcConfigurerAdapter组件都会一起起作用
@Bean //将组件注册在容器
public WebMvcConfigurerAdapter webMvcConfigurerAdapter() {WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/").setViewName("login");registry.addViewController("/index.html").setViewName("login");registry.addViewController("/main.html").setViewName("dashboard");}//注册拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {//super.addInterceptors(registry);//静态资源; *.css , *.js//SpringBoot已经做好了静态资源映射registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/index.html", "/", "/user/login");}};return adapter;
}
Spring boot拦截器登录检查相关推荐
- 使用spring boot拦截器实现青少年模式
思路方法一: 便用Spring Boot拦截器采累计在线时间采实现青少年模式的步骤,可以参考以卜步骤: 1.创建一个拦截器类,实现Handlerlnterceptor 接口. 2.在拦截器类中,定义一 ...
- Spring Boot拦截器(WebMvcConfigurerAdapter)
直接按我的步骤走都没有问题: 1 配置自定义的拦截器: package com.configs;import org.slf4j.Logger; import org.slf4j.LoggerFact ...
- 解决Spring Boot 拦截器注入service为空的问题
解决Spring Boot 拦截器注入service为空的问题 参考文章: (1)解决Spring Boot 拦截器注入service为空的问题 (2)https://www.cnblogs.com/ ...
- spring boot拦截器 过滤器
1.拦截器 登录拦截 自定义拦截路径 //全局配置继承WebMvcConfigurer接口 @Configuration public class MyHandler implements WebMv ...
- Spring Boot拦截器(Interceptor)详解
写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站. 文章目录 Interceptor 介绍 Interceptor 作用 自定义 Inte ...
- spring boot 拦截器获取controller返回的数据_高级码农Spring Boot实战与进阶之过滤器和拦截器的使用及其区别...
众所周知的Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用.这个专栏将对Spring Boot框架从浅入深, ...
- Spring Boot 拦截器
(一)拦截器概述 1.1拦截器介绍 拦截器的作用类似于Servlet 中的Filter,都可以用于对处理器进行预处理和后处理.在Spring MVC 与Spring Boot 中使用拦截器一般是实现H ...
- Spring Boot 拦截器无效,不起作用
这个问题一般是解决WebMvcConfigurerAdapter过时问题造成的.导致这个问题可能有两个原因:一个是拦截器写错了,另一个是拦截器配置错了. 1.需求是这样的 拦截所有的api请求,判断其 ...
- java 拦截器响应中取所有参数,spring boot拦截器中获取request post请求中的参数
最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...
最新文章
- MetagenoNets:在线宏基因组网络分析实操教程
- Java随笔--分布式
- java多线程系列1:Sychronized关键字
- 王者荣耀服务器维护5月22,5月22日王者荣耀更新内容一览
- Linux一键安装PHP/JAVA环境OneinStack
- java实现两个整数相除保留一位小数
- Oracle数据类型Long需要注意的问题
- java 并发模型总类_java并发编程系列-内存模型基础
- yii输出mysql查询日志_Yii2框架设置错误日志输出到日志或数据库
- 科研人看过来!中国人工智能学会-华为MindSpore学术奖励基金发布通知
- cf Round 613
- Hive中Map数据类型转String类型,其中具体内容不变
- 施工企业应实行工程项目责任成本管理
- EPUB文档格式简单总结
- QPS,TPS,RT是什么?
- 域名申请(注册)的流程
- C#微信公众号开发实践--通过控制台程序发布图文消息(2020/8/4实测可用)
- VS 2010 测试功能学习(七) - RnP与Coded UI自动化测试
- BZOJ 1135: [POI2009]Lyz
- 如何把照片压缩到20k一下_怎么样才能把大于20k的照片缩小到20k之内?分享解决问题的方法...
热门文章
- [NOIP 2011普及组 No.4] 表达式的值
- springboot 单元测试
- 洛谷 P1703 那个什么密码2
- vue脚手架---vue-cli
- 【BZOJ 1528】 1528: [POI2005]sam-Toy Cars (贪心+堆)
- MongoDB 征途
- 直接取HANA数据库数据,动态QUERY
- hive中,向map类型插入数据时,需要str_to_map一下
- 同期及上期数据对比处理示例.sql
- 用java程序将GBK字符转成UTF-8编码格式(转)