论坛首页 Java企业应用论坛

使用AOP做权限控制

浏览 14863 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (8)
作者 正文
   发表时间:2011-06-08  
我的想法是在Struts2里用拦截器来实现,比如通过对需要权限验证的Action加验证拦截器,具体做法是做个default包的extend包,里面加权限验证拦截器,然后需要权限验证的Actionextend这个包。
对于基于Spring的,也可以通过AOP的方式,对需要验证的Action加特性描述,并通过关键字拦截做相应的处理。
对于一般的Action,还可以用父类继承的方式,在父类的初始化方法里进行验证并设置权限标识,在Action的执行方法里访问权限标识并做相应处理,这个方法对类的侵入性就比较强了。
0 请登录后投票
   发表时间:2011-06-08  
虽然是植入,感觉还是没有用配置文件这样的方式来配置权限好。
0 请登录后投票
   发表时间:2011-06-09  
做了个大概的介绍,但是类似于功能点权限和数据权限没有涉及,不够深入吧
0 请登录后投票
   发表时间:2011-06-09  
白糖_ 写道
年初做的一个权限拦截大概是这样的:
页面请求-->spring aop-(没有权限抛出异常)->异常拦截器-->错误页面
上面这种方式最大的问题是抛出异常会消耗很大的开支,所以我感觉用拦截器已经足够了:
页面请求-->权限拦截器-(没有权限)->错误页面



哈哈 很像我当初的“实验室产品”的处理方法
0 请登录后投票
   发表时间:2011-06-18  
之前使用filter对请求的url做权限检查,后来换作拦截器,功能大致上一样,但是觉得filter更灵活。

现在的问题是,如果在某一个功能/页面要对不同的用户做权限管理,比如用户A可以浏览该页面全部内容,而用户B只能浏览一部分,这个应该怎么解决?
0 请登录后投票
   发表时间:2011-06-18  

功能权限好处理,上面大部分说的都是功能权限,
业务权限不好抽象处理,差不多都是在具体代码中控制
0 请登录后投票
   发表时间:2011-06-20  
wangyu1221 写道
之前使用filter对请求的url做权限检查,后来换作拦截器,功能大致上一样,但是觉得filter更灵活。

现在的问题是,如果在某一个功能/页面要对不同的用户做权限管理,比如用户A可以浏览该页面全部内容,而用户B只能浏览一部分,这个应该怎么解决?

可以给每一个需要控制部分定义一个权限code,用户具有这个权限code就显示(或禁用)。在用户登录的时候,默认读取用户所具有的权限code(可以是DIV的ID), 那么他无论进入哪个页面,咱们都知道哪些有权限哪些没有。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics