最近在做一个电子商务系统,已经快完工了,权限这块没有加进去,但是功能基本都做完了,权限这块一直没有头绪,我本来的想法是等把功能版块做出来之后再根据每一个版块的CURD等操作权限来进行统一的设置,如:
[b]用户组权限 = 版块-->具体操作[/b]
这样分出来的权限比较细,但也复杂,以前没有弄过这个方面的基础,在此向大家请教,全当学术讨论,呵呵.
另外有一个,上面只是针对用户组进行权限设置,那能不能即可以针对用户组也可以针对单个用户,答案是可以的,可是不知道怎么设计才能达到好理想的效果,请各位大师在此多做停留,指教一二,万分感谢!
1、控制菜单显示权限管理
系统通常都有菜单显示模块
例如:
/system/findUsers.action:代表用户管理入口Action
在显示菜单模块时,如果发现用户没有该Action的权限,则不显示用户管理菜单,这样用户就没有访问用户管理模块的权限
2、页面链接、按钮权限控制
假如用户可以查询用户管理功能,即查询系统的用户信息,但没有添加用户的功能。
/system/findUsers.action:代表用户管理入口Action
/system/addUser.action:代表添加管理入口Action
在findUsers.action对应的Action中,添加一个标志
private boolean addFlag;
public String findUsers() {
...
判断用户是否拥有该链接的权限:/system/addUser.action
发现没有,那么设置addFlag = false;
...
}
页面显示的时候判断addFlag是否为false, 如果为false,则不显示添加按钮
我现在用的系统的权限控制思想就是这样,具体可以自己封装得更完善、更灵活,相信这样能达到你的要求
可以看看:
基于URL实现权限控制
http://www.iteye.com/topic/311801
要看你权限版面怎么设置的,有没有规律可寻.
如果是相应的角色可以看到相应的菜单,就好办,改动不会太大.
增加两张表,或者采用配置文件方式,不会与其它层面相交叉.
如果你想真正用上spring security3,不是三两天的事,不知道你有多少时间可以来做这一块权限管理的东西
自定义验证,通过对链接进行过滤验证应该是最快的方式
1、添加表
角色表role、角色与用户关系表role_user、角色与功能关系表role_function (.如果你需要角色组,还要再加role_group、role_group_role表)
原来需要有功能表,如果没有还要添加功能表,功能表里面最主要的是存放某功能对应的链接(如果是Struts可以存放action路径,如/system/createUser.action)
2、添加维护管理界面
1)维护角色,为角色相应的功能权限(原来应该有功能表吧)
2)添加给用户分配角色的功能
3、用户登录后,将用户的所有权限列表(权限URL放入一个集合中,如List)放入session中
4、使用拦截器,每次用户访问某链接时,通过栏截器判断用户是否有权限访问
那还要添加个function表,维护function,添加角色与功能关系表role_function
权限管理基本都是这个思路
你开发用的是什么技术,如果是Struts2的话,网上有许多通过struts2拦截器实现权限管理的资料