Code Bye

关于RBAC的权限设计的问题,怎么样做都方法级别的控制

1、目前的权限设计的RBAC 五张经典的表结构
用户
角色
菜单
用户_角色
角色_菜单
2、页面只能对有无权限进行显示(例如用户无添加权限,自然页面也就看不到这个按钮)
现在的问题是:假如用户知道添加的action,
他可以直接构造这个url请求地址,这样也是可以达到添加用户的目的的。
问一下相似这样的需求该怎么样设计呢。
谢谢。
解决方案

10

别人知道url,但是他请求时,服务器可以后端可以过去权限表,检测用户能否有权限,没有,就拦截请求!有就通过请求!

5

看到过相似系统,不过没看是怎么实现的。
本人想的话,可以用spring切面来做,在执行增删改查前,先在切面方法中判断用户有无操作权限。

5

引用:

ROLE_ADMIN:sysuser:add,edit,delete,search,view,export,  有sysuser:add 就表示这两个方法都有权限了还是?谢谢。

做的好,两个地方都要防,首先是添加的页面访问限制,最后是数据保存之前再判断一下。

5

页面部分可以
引用:
Quote: 引用:
Quote: 引用:

ROLE_ADMIN:sysuser:add,edit,delete,search,view,export,  有sysuser:add 就表示这两个方法都有权限了还是?谢谢。

做的好,两个地方都要防,首先是添加的页面访问限制,最后是数据保存之前再判断一下。

这两个都要防是什么意思,怎么做到呢,3Q

页面部分可以用过滤器本人根据角色判断是不是有访问页面的权限或用框架也行,其实你本人用过滤器也方便的,你可以在权限表里加个栏位保存地址路径,对应页面放在不同文件夹下面。
保存数据库之前判断下角色有没有对应数据库操作的权限。

5

1、过滤器过滤(可以拦截全部请求,包括.jsp、.action、.css等)
2、拦截器,可以拦截.action请求
3、spring的aop拦截,和拦截器相似,不过拦截面更广,不过和拦截器一样都不可以拦截对jsp页面地访问
以上三种方法都需要对请求url进行权限验证,可以把用户权限列表放在session里或即使连接数据库查询

15

shiro的权限字符串就可以,
而且支持注解,
在你的方法上标注,/**
* 只有拥有user:create权限的用户才能添加用户
* */
@RequiresPermissions(“user:create”)
@RequestMapping(“saveUser.do”)
这样。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于RBAC的权限设计的问题,怎么样做都方法级别的控制