在action层进行权限控制

权限控制是每个项目必不可少的一块。在最近的一个MVC模式(Struts)的实践当中,在进行权限访问控制时做了一个这样的尝试,即在action当中进行权限控制,它所控制的粒度可以到用户的每个操作上,比如说增删改查,当然,我这里所说的权限是控制到功能级的,系统还没有复杂到对实例级别的控制。
具体的例子如下:先定义一个BaseDispatchAction,此类继承Struts当中的DispatchAction,其中有个权限检查的方法  
protected boolean checkPermit(HttpServletRequest request, String funcId,String operationId)。
funcId指的是当前的栏目,operationId为当前栏目的功能操作ID,将功能ID与操作ID在checkPermit方法当中与当前用户所在的角色资源进行判断,看是否符合当前操作。
比如具体到一个新增操作,可以在相对应的功能操作表中定义对应的操作ID。在接下来的具体某个action当中,先继承BaseDispatchAction,比如用户管理模块的UserManangeAction。然后在新增方法当中加入如下代码控制,   
   //判断是否有此方法的操作权限
    String funcId = httpServletRequest.getParameter("funcId");
    if (checkPermit(httpServletRequest, funcId, Constants.QUERY)) {
      return forwardError(actionMapping, httpServletRequest,
                          "error.checkPermit");
    }

这样,对具体的某个功能操作就进行了很好的控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值