浏览 4652 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-10-21
我目前是webwork和spring组合使用,webwork做视图,目前spring只作很少的事情 如果实现aop有2种方法: 1.使用webwork的拦截器,针对每个action做拦截,但是好像实现不了对某个方法的拦截吧 , 如果一个action处理多个操作,就比较麻烦 2.使用spring的AOP,可以针对每个方法做拦截 ( 使用这个 http://wiki.opensymphony.com/display/WW/Spring 做组合) 目前大家都是怎么处理的哪? 即使不用webwork或者spring, 都是怎么实现AOP分离权限操作和数据操作哪? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-10-21
我想了解一些实现的细节,下面说说我的想法(没有真正实践过,仅仅是想法)
例如针对一个文章发布系统的 增加,删除,修改,浏览等操作 管理员A可以增加,修改 管理员B可以删除 普通登录用户浏览(假设) 系统中应该有四个方法 ,然后有几个统一入口 1.add 2.edit 3.del 4.read 实际应用中,一些操作例如add,edit应该是放在一个action里的,然后根据"work"的类别判断操作类型 拦截器的权限判断应该是4个,分布针对四个操作 然后根据当前登陆人的权限判断...然后.... |
|
返回顶楼 | |
发表时间:2004-10-21
J2EE Development without EJB第5章 写道 使用AOP来实现声明性自定义安全性:一般的做法是将安全凭证保存在一个ThreadLocal对象(而不是J2EE安全上下文)中,再用一个自定义的安全拦截器包裹在需要安全性管理的业务方法周围。
至于究竟拦截一个use case(也就是webwork action)还是一个business process(也就是一个method),就看你自己的需要了。 |
|
返回顶楼 | |
发表时间:2004-10-21
gigix 写道 J2EE Development without EJB第5章 写道 使用AOP来实现声明性自定义安全性:一般的做法是将安全凭证保存在一个ThreadLocal对象(而不是J2EE安全上下文)中,再用一个自定义的安全拦截器包裹在需要安全性管理的业务方法周围。
至于究竟拦截一个use case(也就是webwork action)还是一个business process(也就是一个method),就看你自己的需要了。 理论肯定是这样,不过我想看看就具体的情况大家是怎么做的哪 对细节比较感兴趣 |
|
返回顶楼 | |
发表时间:2004-10-21
scud 写道 1.使用webwork的拦截器,针对每个action做拦截,但是好像实现不了对某个方法的拦截吧 , 如果一个action处理多个操作,就比较麻烦
先指出问题:webwork的拦截器是可以对每个action方法的。例如: <action name="user" class="com.test.UserAction" method="add"> <result name="success" type="dispatcher"> <param name="location">/form.jsp</param> </result> <result name="invalid.token" type="dispatcher"> <param name="location">/form.jsp</param> </result> <interceptor-ref name="defaultStack"/> </action> 这就是对UserAction的add()方法。它其实同execute()方法是一样的,只是访问的时候要这样:user!add.action。 如果你只是一个模块,比如文章发布系统的 增加,删除,修改,浏览,那么你完全可以通过“!”这样的字符来解析方法(例如:这里的add)对应到相应的操作权限。 当然,在实际生成环境,会有很多模块,对应很复杂的操作。也许要将这些url权限持久化到数据库中,甚至部分操作的权限要写死。 |
|
返回顶楼 | |
发表时间:2004-10-21
恩,不过方法多了,action的id很多,配置会有很多重复的地方了
还不是很优雅 |
|
返回顶楼 | |