spring boot拦截器 过滤器
1.拦截器
登录拦截
自定义拦截路径
//全局配置继承WebMvcConfigurer接口
@Configuration
public class MyHandler implements WebMvcConfigurer {//这里要引入loginHandler自己的拦截器@Autowiredprivate LoginHandler loginHandler;//重写addInterceptors@Overridepublic void addInterceptors(InterceptorRegistry registry) {//在addInterceptor放入自己引入过来的拦截器,registry.addInterceptor(loginHandler).addPathPatterns("/**")// /**是拦截所有//这里是要放行的路径.excludePathPatterns("/tologin","/login");}
}
excludePathPatterns方法参数可以像我这么写也可以写多个excludePathPatterns方法一个一个存放不过太麻烦了
不要忘了引入自己的拦截器
拦截器实现
//全局加载
@Configuration
//实现拦截器HandlerInterceptor 接口
public class LoginHandler implements HandlerInterceptor {//重写preHandle方法@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//前端登录后再session作用域存入user数据然后在这里取出Object user = request.getSession().getAttribute("user");//判断如果不为空就是登陆了放行返回trueif (user!=null){return true;}else {//为空就是没登录返回false重定向到去登录的页面response.sendRedirect("/tologin");return false;}}
}
要注意controller一定要想session里存放user对象或者是登录的账号
2.过滤器
过滤器和拦截器的实现是一样的过滤器不需要拦截的路径的话可以写一个单独的类里面写上list方法类上加上@ConfigurationProperties注解吧需要拦截的路径放到properties
@ConfigurationProperties(prefix = "no.yz")
@Data
@Configuration
public class NoLoginPathConfig {private List<String> path;
}
过滤器实现
@WebFilter
@Component
public class LoginFilter implements Filter {
private Logger logger3 = LoggerFactory.getLogger("LoginFilter");//这个我是吧不需要拦截的路径放到list集合里面单独写的一个类需要引入@Autowiredprivate NoLoginPathConfig noLoginPathConfig;@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {//转换为httpHttpServletRequest request = (HttpServletRequest)servletRequest;logger3.info(new Date()+"-----判断路径是否需要拦截-------");//判断路径是否需要拦截if (noLoginPathConfig.getPath().contains(request.getRequestURI())){//如果不需要拦截直接放行logger3.info(new Date()+"-----路径可放行-------");filterChain.doFilter(servletRequest,servletResponse);}else {logger3.info(new Date()+"-----获取作用域中的用户名-------");//获取session作用域里的用户名Object attribute = request.getSession().getAttribute(SysInfo.userName);//判断是否为空if (attribute!=null){logger3.info(new Date()+"-----用户名为空不放行-------");//不为空方行filterChain.doFilter(servletRequest,servletResponse);}else {//为空拦截logger3.info(new Date()+"-----没有登录请先登录------");throw new NoLoginExcption("没有登录,请登录");}}}
}
着里要注意要加上
@WebFilter @Component
这两个注解实现
Filter
过滤器接口
和拦截器一样需要在controller里在session作用域里存入登录的对象或者账号判断是否有数据当然你要是有其他好的方法也可以
spring boot拦截器 过滤器相关推荐
- 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拦截器实现青少年模式
思路方法一: 便用Spring Boot拦截器采累计在线时间采实现青少年模式的步骤,可以参考以卜步骤: 1.创建一个拦截器类,实现Handlerlnterceptor 接口. 2.在拦截器类中,定义一 ...
- spring boot 拦截器获取controller返回的数据_高级码农Spring Boot实战与进阶之过滤器和拦截器的使用及其区别...
众所周知的Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用.这个专栏将对Spring Boot框架从浅入深, ...
- Spring Boot拦截器(Interceptor)详解
写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站. 文章目录 Interceptor 介绍 Interceptor 作用 自定义 Inte ...
- Spring boot拦截器登录检查
拦截器 进行登录检查 从登录页面跳转到成功页面之后 为了防止表单重复提交 配置视图映射,利用重定向到成功页面 此时,在浏览器直接输入,配置的视图映射地址 也可以直接映射.跳转到成功页面 登录页面,也就 ...
- java 拦截器响应中取所有参数,spring boot拦截器中获取request post请求中的参数
最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...
- Spring Boot 拦截器
(一)拦截器概述 1.1拦截器介绍 拦截器的作用类似于Servlet 中的Filter,都可以用于对处理器进行预处理和后处理.在Spring MVC 与Spring Boot 中使用拦截器一般是实现H ...
- Spring Boot 拦截器无效,不起作用
这个问题一般是解决WebMvcConfigurerAdapter过时问题造成的.导致这个问题可能有两个原因:一个是拦截器写错了,另一个是拦截器配置错了. 1.需求是这样的 拦截所有的api请求,判断其 ...
最新文章
- ios searchBar 的代理方法 集合
- 使用Groovy代码执行本地操作系统命令的方法
- python-day8-赋值
- python制作射击游戏_零基础用Python开发的第一个小游戏——太空射击
- Android远程桌面助手之功能简介
- java模板变量_IntelliJ IDEA实时模板变量
- 速修复!热门代码覆盖率测试工具 Codecov 的脚本遭恶意修改,敏感信息被暴露...
- 利用GSM模块通过GPRS在GMSK调制方式下与IP网通信
- html怎么打开一个新窗口打开文件,js怎么打开新窗口
- Windows电脑上最好的3个azw3阅读器
- u盘写保护,无法格式化
- 从“人、货、场”搭建数据指标体系,助力电商增长
- 移动端excel导出_Excel格式的手机端和电脑端转换方法,一键就可以实现,不知可惜...
- 写给女孩:二十岁之后的每一年都很重要
- arduino设备跑 ros service server 的波折记
- Android 实现人脸识别
- 百度换肤JavaScript功能
- css3参考文档,css/css3 中文参考文档手册最新版
- cas 自定义登陆异常提示
- 登顶KITTI!Mix-Teaching:适用于单目3D目标检测的半监督方法【清华大学】
热门文章
- 使用 html2canvas 生成图片
- 模拟登录12306(selenium+超级鹰)
- uniapp中唤醒支付宝,微信进行支付并返回app
- SSL用pem和key文件生成jks文件
- 《格鲁夫给经理人的第一课》--读书笔记
- esp32c3 nvs存取大数组结构体方法
- VC++下Duilib有关RichEdit添加背景图片和图片字体的使用
- 计算机软件技术有哪些,1.1 什么是计算机软件技术
- 华为无线网卡插上服务器没反应,无限网卡插在台式机上没反应啊怎么解决
- SR(Segment Routing)不是MPLS的优化和升级