今天公司要做前后端分离的权限管理。由于各种原因,没有使用shiro,需要自己实现一套权限拦截器
这个功能涉及到前端和后端
后端主要基于springboot 拦截器+注解实现
前端主要用vue 的自定义指令实现
今天先记录下后端的实现方案。
一、搭建springboot环境(略)
二、创建一个空的 springboot项目(准备将功能打成jar包直引进 业务项目里面)
三、编码过程
1、创建一个注解类
2、编写拦截器
①继承HandlerInterceptor 实现 preHandle 方法
② 获取方法上的 Permission注解元数据 如果没有注解则直接放过 ,如果有注解 检查用户是否有操作该接口的权限
检查权限的方法封装成了工具类
3、工具类
此处为了方便用map 模拟了权限集合的存储
在实际业务中可以将权限集合放到redis(推荐) ,本地缓存, 数据库 等
4、修改pom文件 打包插件
此处注意不能用springboot自带的打包插件,会导致外部引用不了(具体原因后续记录)
5、打包 安装
6、在业务项目里面引用 gav
7、注册拦截器 配置拦截路径
8、在方法上加上注解