积累,创造,分享!

BlogJava 首页 新随笔 联系 聚合 管理
  25 Posts :: 13 Stories :: 26 Comments :: 0 Trackbacks
权限控制是每个项目必不可少的一块。在最近的一个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。然后在新增方法当中加入如下代码控制,   
1//判断是否有此方法的操作权限
2String funcId = httpServletRequest.getParameter("funcId");
3if (checkPermit(httpServletRequest, funcId, Constants.QUERY)) {
4   return forwardError(actionMapping, httpServletRequest,"error.checkPermit");
5}

6

这样,对具体的某个功能操作就进行了很好的控制。
posted on 2005-08-15 13:41 nighthawk 阅读(319) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: