日期:2014-05-20  浏览次数:20878 次

100分请教下关于用户权限模块的设计与实现,谢谢。
本帖最后由 Javainging 于 2013-10-26 15:16:27 编辑
之前的系统权限的设计非常的简单,
就只有一个userGroup字段 userGroup也就那么两三个值,比如1代表管理员 2代表超级管理员 3代表普通用户

然后我在页面上对这个 userGroup 进行判断,然后分别显示不同的页面(比如对于用户管理来说,普通用户和超级管理员、系统管理员使用了三套页面,太浪费了!)。

这样一来的话,可以看到有很明显的缺点,
1、用户没有角色,不能给角色授予权限。
2、系统不能添加角色,因为添加角色之后,页面也得重新做一份。系统扩展性不好。

现在想问下,改怎么做权限设计呢(用户、角色、权限),然后再页面上怎么做呢,应该不需要搞很多同样的页面吧(比如上面说的三套),权限判断的时候咋判断,


谢谢。

------解决方案--------------------
“RBAC”组件,可以帮你解决这个问题。

------解决方案--------------------
引用:
“RBAC”组件,可以帮你解决这个问题。
你可以找下某某堂OA教程看下,里面有完整的例子。或者PK时发型不乱的视频也可以,我在看这个人的。
------解决方案--------------------
用什么权限系统是你的需求来定的。。
如果做得网站只是面向公司内部的话,那么就不需要那么多权限了。

另外如果简单一点的话,一个登陆页面一样可以实现3种权限的判断的。同样的,内部的显示页面也可以做成一样。
比如论坛,版主和普通用户虽然都能点击管理界面,但是普通用户提交申请的时候就不同通过。。
至于游客,可以属于第四级别的权限,只能看,不能发言。
------解决方案--------------------
可以看下RBAC基于角色的访问控制
数据库设计看一下大概就知道该怎么做了
------解决方案--------------------
springsecurity可以的。可以试试。另外页面端判断权限yige页面就可以了。不需要开发多套页面。
------解决方案--------------------
如果系统很小的话,用这个有点过于重量级了。建议还是用一个页面来写权限逻辑。不需要多套页面的。

引用:
Quote: 引用:

springsecurity可以的。可以试试。另外页面端判断权限yige页面就可以了。不需要开发多套页面。


恩 有没必要用到SpringSecurity啊

------解决方案--------------------
引用:
springsecurity可以的。可以试试。另外页面端判断权限yige页面就可以了。不需要开发多套页面。



springsecurity 是对目录 页面 进去拦截,如果是树 ,那怎么办?
------解决方案--------------------
RBAC角色权限资源关联模型,登陆的时候就加载用去的权限,然后页面进行判断。
可以使用velocity 页面定义一个权限标签,
有权限就显示,无权限就不显示就OK了。
SpringSecurity比较复杂。
------解决方案--------------------
自己做或者使用安全框架,可以用shrio框架。
自己做的话:user(用户),role(角色),menu(菜单或者资源),user_role(user,role的关联表,就是指定某个用户有哪些角色),role_menu(role,menu的关联表,指定某个角色可以看到哪些菜单)这5个表关联就能取出某个用户可以看到哪些菜单。
用框架更好,使用框架可以后台验证更安全,还可以将权限分得更细
------解决方案--------------------
1.页面里边用户判断,就通过if判断来决定显示或者隐藏资源。
2.添加角色,那就需要角色资源,角色资源包含许多资源访问的连接url,如果你这个用户登录你可以判断这个用户属于的角色所拥有的资源是否包含现有的,所以就好说了。
------解决方案--------------------
不需要不同的页面
从功能的角度 不同的角色对应不同的功能 , 例如 删除 普通用户按下午提示无此权限,除非很特殊的页面可以做3套,大部分1个页面就可以了
数据库 要有 用户表 角色表 用户角色对应表  功能表  功能角色对应表
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

“RBAC”组件,可以帮你解决这个问题。
你可以找下某某堂OA教程看下,里面有完整的例子。或者PK时发型不乱的视频也可以,我在看这个人的。


看视频个人觉得太慢了,而且这些OA视频都好几十个视频,‘
今天看了下SpringSecurity 不知道这个咋样。谢谢。


最近一直在用 shiro 感觉不错

从整个页面到 页面上的每一个按钮 都能控制到
------解决方案--------------------
引用:
Quote: 引用:

自己做或者使用安全框架,可以用shrio框架。
自己做的话:user(用户),role(角色),menu(菜单或者资源),user_role(user,role的关联表,就是指定某个用户有哪些角色),role_menu(role,menu的关联表,指定某个角色可以看到哪些菜单)这5个表关联就能取出某个用户可以看到哪些菜单。
用框架更好,使用框架可以后台验证更安全,还可以将权限分得更细

额  这个跟SpringSecurity比呢,好像SpringSecurity用的多一些吧,相比之下哪个更简单点呢 
呵呵。,~


shiro简单