企业内部的一个类似CRM的系统,已经做完,但现在没有权限控制,也就是说,没做用户登陆,直接进来谁都可以进行增删改查等操作。
现在要求做个登陆,登陆后对不同用户可以访问以及进行数据操作的权限进行控制,有什么好的方案大家给介绍下。现在有用户表,表中有权限字段,但没有权限表。系统中的角色已经确定,以后不会变动。个人目前想法是再建张权限功能表,登陆后把该用户的所有在以后操作中需要的信息都放到SESSION中然后进行各种控制,不过这样的话在原系统中需要修改的地方就比较多,希望大家提点意见,谢谢

解决方案 »

  1.   

    如果是仅对功能模块的控制,比如用户可以使用哪些功能,不能使用哪些功能,用acegi不错。
    如果权限跟数据还有关,比如该用户仅可以访问本部分的数据,那就得改代码了。
      

  2.   

    建议用下 配置文件
    *.propertis 或是 *.xml
    从那里取权限
    一般的特殊 配置文件都会加密的或是在session 中设置
    cookie 也可以哦
    希望有所帮助哦
    ^_*
      

  3.   

    比较赞同使用acegi,也就是Spring security. 前提是只控制进入相应的模块.改代码应该是免不了的.谁叫当初设计的时候不弄清楚呢.呵呵
      

  4.   

    我觉得首先要看楼主项目中对权限的要求了,如果只是对功能模块进行限定操作的话,
    我也比较赞成使用acegi,
    如果要对数据内容进行控制的话,还是要改较多的代码
      

  5.   

    哪有这么麻烦,做个filter,配合配置文件,对一些权限画面进行控制。此外再在菜单中稍微判一下就可以了。功能可以和角色挂钩。在登录时取出所有拥有的角色放在map中,在判断时校验map中有没有符合的角色就可以了。权限表完全没有必要。
      

  6.   

    楼主说已经有用户表而且有权限字段了,那么用户登陆后把信息保存在一个session里,然后在有删除,添加按钮初加个判断就可以了啊,就是判断下权限关键字就可以了,比如是1的话就把按钮显示出来,是2的话就不显示按钮。
    因为我是刚学习j2ee的,以上说的权限还玩不好,所以在我做的那个人才网项目中权限就是用上面的方法做的。
    呵呵,仅供参考!
      

  7.   

    系统是接手的以前别人做的没做完的以前的人做的时候没考虑权限问题代码更改是一定的,因为需要对不同权限的人进行查询限制,也就是说不同权限的人查出来的数据是不同的。现在需要做  模块权限 数据权限 操作权限,在想需不需要加一张功能权限表,初步拟订方案就是登陆后把用户信息都放SESSION中做的,不过对页面代码的更改太多了点,唉,有什么更加合理的方法吗 ?象框架的东西不用说了,因为系统已经成型了,框架已经确定
      

  8.   

    可以建一个ACL权限控制类。把粗颗粒即对模块URL的访问权限和细颗粒即对模块功能的增删改查全部交由这个ACL处理。
    ACL负责授权,和认证两个过程。
    ACL接收用户或角色做为主体标示,模块做为资源标示,模块功能的增删改查做为操作标示。
    授权:即把资源标示和操作标示权限赋予主体标示。
    认证:即查询主体标示被赋予的资源标示和操作标示。表可以设计为用户表,角色表,用户角色表,模块表和ACL表。
      

  9.   

    加一张功能权限表,这种做法应该是比较普遍的,页面改动我想主要是对主页面做些改动吧,用户登陆后用户信息放到session中,根据权限加载相应的界面模块功能,其他功能模块不需要做修改,如果还要做些数据权限设定,可以是针对个别有数据库操作的按钮在功能权限表中做定义,当然这些页面也都需要做些修改,判断是否有这些权限功能,控制操作或者显示。应该说主要就是修改主页面和一些涉及权限控制按钮的页面即可,总的工作量不大。
      

  10.   

    权限分为:功能权限和细粒度权限(又叫内容权限)。内容权限,使用RBCA模型,再使用web的Filter不需要改代码,加上login.jsp, logout.jsp就可以搞定。
    但,这些显然不够吧!!细粒度权限控制这是必须的。建议使用Metadmin细粒度权限管理产品。这是一个中间件。
    Metadmin将所有权限逻辑集中起来管理,实现细粒度权限做判断,对原来的代码没用任何侵害。
    Metadmin还提供了人性化界面,可以直接通过界面设置各种各样的权限。权限部分不需要任何编码。
    Metadmin只需要2个配置文件:用户信息配置文件和数据源配置文件,其他都全部通过界面操作。详见:http://www.metadmin.com