使用acegi-security管理权限




对于acegi-security用过spring的朋友一定听说过,早就想学习一下,但一直没有机会用,加上acegi-security本身很复杂,算起来从打算学到现在差不多都一年多了,版本也从0.5升到了1.1,正巧最近公司的业务处理中间件要提高安全性,要做一个权限管理控制的模块,本来如果直接写个拦截器就搞定了,不过本着不求最快但求最好的思想,决定用一下大名顶顶的acegi-security,咱们也来玩玩RBAC(基于角色的权限控制),参考了一些资料,主要来自springside,差不多搞明白了acegi-security是怎么回事,这里不重复别人的文字,主要谈谈我的使用经验,如果是一般的j2ee web平台直接使用差不多就没什么问题,关键我们中间件是使用的内部协议,而不是http,学习acegi-security后,感觉它主要实现都是靠着filter来的,结果就自已写了一个拦截器取代filter,然后使用自带的(or springside的方法安全拦截器),安全控制算是整合上去了,后来发现现有的程序只有一个方法处理,并要从请求的数据中取得条件来判断是否有权利调用后台的业务模块,说明白点就有点类似在http下的URL路径,虽然acegi-security提供了方法的拦截,但好像不能拦截方法的参数,如果有的话我就可以通过参数来判断是否有权限操作了,or把原来的程序改成一个一个的方法(纯属说笑,呵呵),这样问题就很明显了,acegi-security并没有提供我们协议的安全拦截器(http中是FilterSecurityInterceptor),所以一切都得自已实现,从org.acegisecurity.intercept包下的基类和接口开始,参照它FilterSecurityInterceptor和MethodSecurityInterceptor照葫芦画瓢,我们自已的安全拦截器就出来了,目前系统已完全整成acegi,成为RBAC的权限控制管理。ACL的权限控制还没有仔细研究,acegi-security架构也还是有些模糊,此文有待补充...

posted on 2006-09-16 09:41 The One 阅读(1243) 评论(0)  编辑  收藏


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


网站导航:
 
<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(3)

随笔档案(11)

相册

我的邮箱

搜索

最新评论

阅读排行榜

评论排行榜