系统权限设计

      近期做了一个项目,框架是用struts + spring + hibernate,在做权限设计的时候上网查了很多设计方法,但是从控制的粒度来说,能控制到按钮的方法很少。之前看到过一个项目控制权限的方法是把系统中所有需要权限控制的按钮都设计到数据库中,每一个菜单对应一个或多个按钮,分配权限时给用户分配能操作的按钮权限。只是看到过,没有自己实现过,而这次项目的框架是由我自己来设计,所以我按照这个思想如下设计我的系统权限:

     1.系统的层次分为模块、主菜单、子菜单、按钮(每个按钮对应一个动作)四级。

     2.为每个层次命名一个动作名称,因为我的系统设计是每个子菜单对应一个action,每个action里面对应多个动作, 最后每个按钮对应的动作名称为:模块动作名称_主菜单动作名称_子菜单动作名称_按钮动作名称,例如:system_usermanager_user_add,这样得出的每个动作名称在系统中都是唯一的。

     3.用户进入系统时会根据数据库记录的用户权限找出该用户所对应的模块进行权限的初始化。

     4.当用户每点击进入一个模块时会把该用户在该模块下的菜单权限进行初始化,然后用户点击进入菜单时再根据数据库中记录的权限对该页面的按钮权限进行初始化,没有权限的按钮将被禁用。

     5.考虑到有些用户可能会用url地址对系统进行破坏性的侵入,用户每点击一次模块时,都会把该用户在该模块下所拥有的动作权限都记录到session当中,用户点击按钮进行操作时都会产生一个动作,在BaseAction中会对这个动作跟session中的动作名称进行比对,没有权限将转到无权限的信息提示页。

     所有的权限控制思想如上所述,请各位高手提出宝贵的意见,是否有更好的设计方法,期待下个项目再进行改进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值