权限控制怎么做,粒度细分

迷途的码农 发布于 2016/10/16 22:00
阅读 821
收藏 2

权限控制,肯定系统都会涉及。常用的有功能权限,url对应权限,做相对应的展示。

现在我好奇的是数据的权限,比如员工只能查看自己的数据,经理可以查看底下员工数据。实现可以在程序直接判断实现。有没有一种比较通用的办法可以实现。数据权限的控制?

现在系统只有url权限控制,但是我如果通过参数改变访问了非自己的数据,就涉及到了数据权限控制,但是要加判断,就有很多程序要加。希望有个通用的地方。

加载中
1
花和尚鲁智深
花和尚鲁智深
开源权限引擎值得研究
1
eechen
eechen
用几张表实现RBAC(Role-Based Access Control,基于角色的访问控制):
用户表(user)+关系表1+群组表(role)+关系表2+权限表(permission)
从验证用户身份的cookie中拿到用户ID并查出其具有的权限并放到一个数组.
后面需要权限认证的操作则可以从这个数组里拿数据进行判断.
JeffreyLin
JeffreyLin
RBAC 好像只涉及URL权限,对数据权限好像没覆盖
0
kakai
kakai
apache shiro
0
记住一座城
记住一座城
我之前做过类似的需求
A 可查看所有员工数据

B 可查看下属员工数据
C 只能查看自己的数据

// 获取SQL查询条件
if (LEVEL == A) {
// A可查看所有员工数据,不做查询限制
   return ""
}

if (LEVEL == B) {
// B可以查看自己和下属员工数据
   return B.id + B下属id;
}

// C只能查看自己的数据

return  C.id



通常情况下,调用这个方法就可以了。

0
szwx855
szwx855

我现在就涉及到做权限系统,原理就是写一个RMI接口,给各个系统调用使用,提供系统ID,URL,以及USER-ID,还有权限类型。

我在权限系统中设计为分为三种类型,1是URL权限,2是菜单权限,3是数据权限。

1URL就是在权限系统中录入的所有界面资源集合。通过角色+权限+资源对用户进行配置。

2、菜单权限,在权限资源中指定类型为菜单,当客户端通过接口调用查询菜单时,我可以根据当前用户的角色,查询出菜单。

3、数据权限,这个也是通过在权限系统中通过当前的业务进行的判断,接口返回true or false就可以了。

4、其实还有一个叫界面权限。就是按钮、下拉框等的权限。这个我们是通过标签来做的。其实还是可以在权限系统中在进一步细分。


迷途的码农
迷途的码农
你说的狠详细,确实是这个几个粒度
返回顶部
顶部