过滤器做权限校验以及遇到的坑
1、写一个实现HandlerInterceptor的类,按需重写preHandle(此方法的代码在进入controller方法之前执行)、postHandle(调用完controller之后,视图渲染之前)、afterCompletion(整个完成之后,通常用于资源清理),权限校验的代码写在preHandle方法里,校验无问题则返回true即可,为方便系统方法调用,可在此把用户信息存入一个本地线程(private static ThreadLocal userThreadLocal = new ThreadLocal<>();),在afterCompletion里清除,这样做的好处是可以省去前端传参以及后端在每个接口都反复写同一个参数(例如用户id等)。
2、写一个实现WebMvcConfigurer的类,重写方法addInterceptors(InterceptorRegistry registry),给参数registry增加过滤器(即步骤一写的类)
registry.addInterceptor(new interceptor()).addPathPatterns("**")//引号里写要校验的url.excludePathPatterns("**")//引号里写不校验的url;WebMvcConfigurer.super.addInterceptors(registry);
坑:
1、步骤一的类里要做校验一般都需要写一个自动注入的业务实现类对象,但是在步骤一的类里直接写如下代码。
@Autowiredserver serverImpl;
是无法自动注入成功的,调用时会报空指针异常,解决这个问题需要把自动注入这一步放到步骤二实现的类里,再把serverImpl当成步骤一的类的一个参数,也就是步骤一的类加一个带参(serverImpl)的构造方法,步骤二new时吧参数带进去就可以用了。
2、在我实现完这个方法后出现了在swagger上调用返回乱码的现象,解决方法是删除注解@order(-1)。
过滤器做权限校验以及遇到的坑相关推荐
- SpringCloud微服务项目下的权限校验
1.以前的单体架构权限验证 用户登录操作传入用户名和密码,传到后端,后端到DB里查询,如果查到就返回登录成功并把session信息存到内存中并把session的唯一标识(JessionId)返回给我们 ...
- SpringBoot:切面AOP实现权限校验:实例演示与注解全解
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 目录 理解AOP 什么是AOP AOP体系与概念 AOP实例 第一个实例 ...
- nginx反向代理和shiro权限校验产生的404问题
问题描述: 我们的项目A(以下简称A)用了shiro做权限校验,nginx做反向代理,在另一个项目B(以下简称B)中点击某个A的链接时实现单点登录并会跳转到该路径.跳转到原路径的时候nginx报了40 ...
- 自定义注解实现RBAC权限校验,不要再说你不会了
目录 1.前言 2.实现思路 3.编码实战 3.1.准备 3.2.数据库表准备 3.3.自定义注解 3.4.拦截器 3.5.接口使用 3.6.测试 3.7.结论 4.结束语 1.前言 学过Spring ...
- where条件中有权限校验的自定义函数优化方法
下面SQL要跑47秒(SQL已做脱敏处理,最原始SQL要跑几十分钟,添加HINT修正执行计划后跑47秒) 54316 rows inserted Executed in 47.031 seconds ...
- 切面AOP实现权限校验:实例演示与注解全解(强烈推荐)
点击关注公众号,利用碎片时间学习 1 理解AOP 1.1 什么是AOP AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(两外两个:IO ...
- 【SpringBoot-3】切面AOP实现权限校验:实例演示与注解全解
SpringBoot中的AOP处理 1 理解AOP 1.1 什么是AOP 1.2 AOP体系与概念 2 AOP实例 2.1 第一个实例 2.2 第二个实例 3 AOP相关注解 3.1 @Pointcu ...
- 使用auth_request做权限控制
网上很多如标题的文章,为何我还要写呢??? 网上一搜一大堆对我来说完全没用的文章,或者直接nginx官网复制过来,看得我贼无语.我的需求是校验参数是拼接到链接后面,而不是请求头的,网上大部分都是通过请 ...
- springboot security 权限校验_springboot借助aop和注解实现权限校验
我们用springboot做后台开发,难免会用到权限校验,比如查看当前用户是否合法,是否是管理员.而spring的面向切面的特效可以帮助我们很好的实现动态的权限校验.这里我们就用到的spring的ao ...
- Shiro基础应用——角色和权限校验
一.Shiro 为什么要用shiro: 1.项目中的密码是否可以明文存储? 2.是否任意访客,无论是否登录都可以访问任何功能? 3.项目中的各种功能操作,是否是所有用户都可以随意使用? 综上,当项目中 ...
最新文章
- org.apache.hadoop.fs-ChecksumException
- 金审系统与SAP接口
- JS可以写操作系统?Windows 95被装进Electron App
- 第十六届全国大学生智能汽车竞赛--百度智慧交通(东部赛区)
- 概率编程库Edward安装
- VTK:图片之DrawShapes
- 也说电影《魔比斯环》
- CSDN学院全面改版啦!这次真的“搞大”了!
- 一些经常会用到的Javascript检测函数
- SuSE Linux 应用与安装
- 零基础学Python--------第3章 流程控制语句
- 3.CND技术详解---内容缓存工作原理及实现
- 面向对象---特----性
- h5自我介绍作品_自我介绍h5模板
- NC65销售订单功能导入
- 小程序源码:全新实用工具证件照制作微信小程序源码下载支持多种证件生成与制作
- 计算机考研考研院校难度等级,建议收藏
- ts 修饰符_TS4 新特性一览
- 神舟战神Z8-CA5NP,RTX3060怎么样?测评值得买吗?详细性能点评
- 万能五笔 linux,[转载]Ubuntu 安装 万能五笔 输入法