请问有关springboot shiro 实现RBAC鉴权 并且实现2B/2C的私有Resource的实现方法

最近有学习到在springboot下实现RBAC鉴权框架的实现的学习,并且也按照一些文献学习和实现了demo。

有个小问题:

虽然我实现了RBAC鉴权,能够在用户登录后根据用户的角色分配不同的菜单,不同的url权限

但是无法分辨登录的该用户是否拥有该接口内所有资源的权限

说的不是很清楚哈哈,打个比方:

比如我这是一个B2B的商城后台,我的后台用户是各个租户,有一个商品列表。
怎么样能够确保该租户在登录后接口只返回该租户的所属商品?

简单的RBAC鉴权只能够判断用户是否拥有url的权限,但是无法判断用户是否拥有持久层内的部分资源的权限

目前想到的是在所有相关的业务接口内进行判断用户是否拥有该资源的操作权限,或者返回用户的所拥有的资源,
但是这样感觉有点麻烦

所以发帖问一下是否有权限框架或者某种神奇操作能够实现这种需求?

判断用户是不是有资源的操作权限。在关系型数据库中,肯定是通过关联的id来限制的。这就简单了。
CRUD,都带上关联的id作为条件。

确实,不失为是一种方案。。。

你的这个RBAC应该和spring boot security类似的权限框架的。你说的显示某个租户的商品列表属于业务关联范围。不应该在用户权限里实现。可以自己在数据库新建租户-商品关联表,租户登陆后,只显示该用户的商品信息。

1 Like

嗯,在业务里实现我刚开始也是想到了的。但是一想这种资源权限在很多市面上已有的项目和平台都有实现,所以在想是不是可以在业务之外的地方通过某种配置或者框架来实现

在后台管理这边直接写一个界面,可以配置你要的资源就行了。数据库配合新建几张表。然后在封装成jar包,及变成你说的通用配置 或者框架了。业务最好和底层权限独立。