对一套已经做好的系统加一个权限控制,大家有没有什么好的方案给提一下

jiaping108 2009-03-26 03:36:41
企业内部的一个类似CRM的系统,已经做完,但现在没有权限控制,也就是说,没做用户登陆,直接进来谁都可以进行增删改查等操作。
现在要求做个登陆,登陆后对不同用户可以访问以及进行数据操作的权限进行控制,有什么好的方案大家给介绍下。

现在有用户表,表中有权限字段,但没有权限表。系统中的角色已经确定,以后不会变动。

个人目前想法是再建张权限功能表,登陆后把该用户的所有在以后操作中需要的信息都放到SESSION中然后进行各种控制,不过这样的话在原系统中需要修改的地方就比较多,希望大家提点意见,谢谢
...全文
163 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
accessmanager88 2009-03-27
  • 打赏
  • 举报
回复
权限分为:功能权限和细粒度权限(又叫内容权限)。

内容权限,使用RBCA模型,再使用web的Filter不需要改代码,加上login.jsp, logout.jsp就可以搞定。


但,这些显然不够吧!!

细粒度权限控制这是必须的。建议使用Metadmin细粒度权限管理产品。这是一个中间件。
Metadmin将所有权限逻辑集中起来管理,实现细粒度权限做判断,对原来的代码没用任何侵害。
Metadmin还提供了人性化界面,可以直接通过界面设置各种各样的权限。权限部分不需要任何编码。
Metadmin只需要2个配置文件:用户信息配置文件和数据源配置文件,其他都全部通过界面操作。

详见:http://www.metadmin.com
林志Ke 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jiaping108 的回复:]
系统是接手的以前别人做的没做完的。。。以前的人做的时候没考虑权限问题

代码更改是一定的,因为需要对不同权限的人进行查询限制,也就是说不同权限的人查出来的数据是不同的。

现在需要做  模块权限 数据权限 操作权限,在想需不需要加一张功能权限表,初步拟订方案就是登陆后把用户信息都放SESSION中做的,不过对页面代码的更改太多了点,唉,有什么更加合理的方法吗 ?

象框架的东西不用说了,因为系统已经成型了,…
[/Quote]
加一张功能权限表,这种做法应该是比较普遍的,页面改动我想主要是对主页面做些改动吧,用户登陆后用户信息放到session中,根据权限加载相应的界面模块功能,其他功能模块不需要做修改,如果还要做些数据权限设定,可以是针对个别有数据库操作的按钮在功能权限表中做定义,当然这些页面也都需要做些修改,判断是否有这些权限功能,控制操作或者显示。应该说主要就是修改主页面和一些涉及权限控制按钮的页面即可,总的工作量不大。
despotic 2009-03-27
  • 打赏
  • 举报
回复
可以建一个ACL权限控制类。把粗颗粒即对模块URL的访问权限和细颗粒即对模块功能的增删改查全部交由这个ACL处理。
ACL负责授权,和认证两个过程。
ACL接收用户或角色做为主体标示,模块做为资源标示,模块功能的增删改查做为操作标示。
授权:即把资源标示和操作标示权限赋予主体标示。
认证:即查询主体标示被赋予的资源标示和操作标示。

表可以设计为用户表,角色表,用户角色表,模块表和ACL表。
hx_huang 2009-03-27
  • 打赏
  • 举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分!
哒哒 2009-03-27
  • 打赏
  • 举报
回复
学习..
jiaping108 2009-03-27
  • 打赏
  • 举报
回复
系统是接手的以前别人做的没做完的。。。以前的人做的时候没考虑权限问题

代码更改是一定的,因为需要对不同权限的人进行查询限制,也就是说不同权限的人查出来的数据是不同的。

现在需要做 模块权限 数据权限 操作权限,在想需不需要加一张功能权限表,初步拟订方案就是登陆后把用户信息都放SESSION中做的,不过对页面代码的更改太多了点,唉,有什么更加合理的方法吗 ?

象框架的东西不用说了,因为系统已经成型了,框架已经确定
shooter516 2009-03-26
  • 打赏
  • 举报
回复
楼主说已经有用户表而且有权限字段了,那么用户登陆后把信息保存在一个session里,然后在有删除,添加按钮初加个判断就可以了啊,就是判断下权限关键字就可以了,比如是1的话就把按钮显示出来,是2的话就不显示按钮。
因为我是刚学习j2ee的,以上说的权限还玩不好,所以在我做的那个人才网项目中权限就是用上面的方法做的。
呵呵,仅供参考!
Coolfatman 2009-03-26
  • 打赏
  • 举报
回复
哪有这么麻烦,做个filter,配合配置文件,对一些权限画面进行控制。此外再在菜单中稍微判一下就可以了。

功能可以和角色挂钩。在登录时取出所有拥有的角色放在map中,在判断时校验map中有没有符合的角色就可以了。权限表完全没有必要。
架构修炼之道 2009-03-26
  • 打赏
  • 举报
回复
我觉得首先要看楼主项目中对权限的要求了,如果只是对功能模块进行限定操作的话,
我也比较赞成使用acegi,
如果要对数据内容进行控制的话,还是要改较多的代码
mir2ming 2009-03-26
  • 打赏
  • 举报
回复
比较赞同使用acegi,也就是Spring security. 前提是只控制进入相应的模块.改代码应该是免不了的.谁叫当初设计的时候不弄清楚呢.呵呵
adrian8 2009-03-26
  • 打赏
  • 举报
回复
建议:要想实现全面的关联必须
建立 用户-权限功能-角色三者的关联表。两两关联。

权限的分配在一个系统中相当重要的。
hoojo 2009-03-26
  • 打赏
  • 举报
回复
建议用下 配置文件
*.propertis 或是 *.xml
从那里取权限
一般的特殊 配置文件都会加密的

或是在session 中设置
cookie 也可以哦
希望有所帮助哦
^_*
loveunittesting 2009-03-26
  • 打赏
  • 举报
回复
如果是仅对功能模块的控制,比如用户可以使用哪些功能,不能使用哪些功能,用acegi不错。
如果权限跟数据还有关,比如该用户仅可以访问本部分的数据,那就得改代码了。

81,087

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧