在开发中,我们经常遇到一个问题,那就是权限!!!
可能很多人就立马会说JWT AUTH那些
其实这里说的是归属问题,并不是权限接口问题!
我个人在项目中是不使用官方那一套的,因为那一套对我来说过重了
本次要说的其实不是权限问题
而是归属问题!
就是你是否有这个对象的操作权限而不是你是否有这个接口的权限
两个不是一码事!
在PasteSpider中,虽然进行了环境等隔离,其实还是有其他问题的
首先我们来回顾下PasteSpider里面的结构
项目 —-> 服务 —-> 容器
也就是说上面的3个其实是有层级关系的,当然了如果这个容器(服务/站点)是非系统(PasteSpider)创建的,则容器是游离状态了!
而对于我们熟悉的服务器和环境,其实可以看成是同级的,并行关系
现有的里面虽然有权限模块,但是存在一些问题
问题一
要对一个对象进行选定,说白点就是CRUD控制
你会发觉每个地方都要限定,很容易遗漏!
问题二
并行的对象中会有问题,比如服务器和环境
因为是并行的关系,可以形成很多组合方式,这就对授权和配置造成混乱
甚至是接口逻辑
因为有时候比如说只配置了服务的权限,那么服务器和环境?是默认都可用还是。。。
既然上面这么多纠结点,那么有没有一个灵活的,简单的方案解决这个问题呢???
答案是有的!
之前我有一个帖子说的是关于归属查询的案例,其实用在这里非常合适!
不过不是之前帖子那样,得做一个变种!!!
之前的思路是对应的数据表加个字段表示归属
在这里就有些不合适了,所以得变一下
新引入组别概念
所有得资源可以绑定一个组别
而一个账号可以绑定多个组别
查询得时候基于多个组别查询就可以有包含关系了!
然后再角色中做点手脚,比如gro开头的才要参与过滤查询!