背景:
最近学习公司两个项目的代码,对权限相关的处理做一个总结!
1、基本思路和原理
(1)利用java的拦截器原理,在用户请求接口是进行拦截。
(2)我们可以设计成token或者session从这里取到用户想相关信息(权限组(角色)信息)。
(3)将所有需要验证权限的功能弄一个权限缓存池,将所有权限缓存起来。
(4)从token或session中取出该用户的权限组与访问的接口对比,相同则说明有权限。
2、设计思路
数据库:权限表(角色表) :存放各种角色(权限组)以及它包含的功能
用户表: 拥有一个权限(角色)
java后台:启动的时候可以通过扫描所有的接口将接口path缓存到权限池内(用于添加权限设置使用)。
用户访问接口的时候通过拦截器取到接口的path,取到用户的权限组path
用户权限组path内含有接口访问的path即权限通过。
添加权限组的时候通过映射权限池内的权限path,组合成权限path存入权限表内
网友评论