关于rbac授权的一点问题

现在基于rabc的动态权限一般都是靠url去匹配当前路径所需角色与用户所拥有的角色进行比对。这个是没问题的,但是存在这样的场景
如果一个角色只拥有一个角色管理的权限,也就是user/** 下的权限。那么按道理来讲拥有这个角色的用户是可以正常访问用户管理的页面的,但是问题来了,用户管理肯定要调用菜单列表,这样就要访问menu/** 下的api,而用户所拥有的当前角色并没有这个url所需要的角色。所以这就出现问题了,当热用户和角色也是这样。我看了很多文档,都没有提到这个问题,所以这个问题怎么解决呢?

比较直接的办法是在在RoleController再起一个接口,调用menuService,借此url来通过权限校验。当然其他数据有依赖关系的也都这样,但这样感觉不是很好,控制器中参杂着其他模块的业务,依赖多的话就更糟糕了,所以有什么比较优雅的解决方案吗?

阅读 2.7k
2 个回答

有些可以设置成默认权限,或者说无需登陆的权限

现在基于rabc的动态权限一般都是靠url去匹配当前路径所需角色与用户所拥有的角色进行比对
但实际上很少会和角色来比对,而是和此角色拥有的权限来比对,所以你想加什么权限,把这个权限放到角色中就行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题