基本上涉及以下对象,用户,角色,部门,资源,操作基于B/S。

解决方案 »

  1.   

    用grant来授权,用revoke来收回授权
      

  2.   

    rbac,这个就是思想,楼主认为还有其什么思想吗?
      

  3.   

    rbac是基本的思想。
    给部门赋予权限。
    人从部门继承权限。
    更复杂一点.用户可以单独授权.
    授权认证实际就是what和who的一种关联. 对what的某种操作给who授予权限.这样acl(访问控制列表)中就应该有如下的东西:
    唯一标识who(不一定是一个字段.只要能标识主体就可以)。
    唯一标识what(也不一定是一个字段。标识得了资源就可以)。
    上面两部分已经把what和who关联起来了.下面就是有什么样的权限..
    用int的32位中每一位标识一种操作,相信这个就不用细说了..
      

  4.   

    没有详细需求的话,楼主google一下RBAC吧.
    --------------------------------------------
    按楼主的说法就是"NO,你提问前google了没?"( ̄▽ ̄)
      

  5.   


    RBAC 当然有所了解,这里有个疑问,将部门同权限联系起来好吗,如果一个部门中存在N种权限,那么..
      

  6.   


    这个就看你的需求了,当然是减少这种依赖,不过看你在需求中把部门提出来,想来是有其他用途,如果部门不是必须的,就去掉它。如果要加上部门,这种依赖也可以用一个字段去屏蔽,用这个字段告诉acl,这个资源的权限是使用从部门继承的权限?从自己角色继承的权限?或者是用户自己的特殊权限?不过这样就比较复杂了,尤其如果你要考虑的更细一点,把继承的概念细化给操作,那么就更加复杂了...
      

  7.   

    struts2 的interceptor
    为每个权限的用户设定访问某些功能的权限,放如session中,然后当用户访问某功能时,在interceptor中检查
      

  8.   

    用户对应一个部门,可以在用户表里记录部门信息。
    一个角色对应多个资源(权限),一个资源对应多个角色,要建中间表。
    用户可以有多个角色,建中间表
    用户只有一个角色,在用户表记录
    使用:在用户发起活动时,可以在后台类(servlet,action)中判断是否有这种权限,
    用户的角色可以保存在session中。也可以配置过滤器,在每次请求时判断是否有权限。
    配置过滤器有一个很巧妙的设计,例如要操作的资源(权限)名和访问的路径名有某些规律,这样方便查询(个人想法).
      

  9.   

    rbac里权限只关联角色,更不可能挂到部门上.
      

  10.   


    固守rbac的策略不能很好的符合需求.针对需求做适当的扩展是必要的.我又看了看需求. 个人感觉,按照rbac3的思想. 所做的扩展是让部门可以被授权,这样就没有必要为一些部门设置专门的角色.  如果部门很多, 特殊权限就会很多, 我们当然不希望一个系统中到处充斥着角色...
      

  11.   

    要思想的话,查一下 RBAC 吧,我目前在用Spring Security,之前.net有一个叫 Membership 的框架,思想都类似,做好不容易。 角色的继承之类的