锁定老帖子 主题:[转载]实战Acegi
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-01-05
实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架 原文地址: http://www.blogjava.net/youlq/archive/2005/12/06/22678.html 希望对大家有所帮助。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-01-05
这个原来是楼住写的,我就是看这个入门的,写写楼主了。。。。。
|
|
返回顶楼 | |
发表时间:2006-07-18
谢谢指点迷津
|
|
返回顶楼 | |
发表时间:2006-07-26
小心的问一句,
ACL的集合后处理会不会造成分页产生虎牙子 各位兄台是如何解决的? |
|
返回顶楼 | |
发表时间:2006-08-02
liuyifan.com 写道 小心的问一句,
谢谢楼主,最近有时间,刚好可以看一下
ACL的集合后处理会不会造成分页产生虎牙子 各位兄台是如何解决的? |
|
返回顶楼 | |
发表时间:2006-08-02
如果通过ResultSet分页,产生虎牙是肯定,如果不想产生虎牙,那只有在客户端分页,想想如果有一次有10万条记录需要分页的话,这效率。。。
acegi对于Security Object的权限校验,通过AOP拦截方法并不是很有效,比如,我需要对Order对象进行权限检验(假设张三有权阅读,李四无权阅读),我的业务服务类有这么一个方法:Order getOrder(int orderId),acegi的处理方式是针对调用方法的参数进行检验,但我们实际需要的是针对返回结果的校验,这并不是唯一的特例,实际情况还有很多,所以我感觉,针对实例级的ACL控制,用AOP来处理并不是很现实。 |
|
返回顶楼 | |
发表时间:2006-08-02
balaschen 写道 如果通过ResultSet分页,产生虎牙是肯定,如果不想产生虎牙,那只有在客户端分页,想想如果有一次有10万条记录需要分页的话,这效率。。。
acegi对于Security Object的权限校验,通过AOP拦截方法并不是很有效,比如,我需要对Order对象进行权限检验(假设张三有权阅读,李四无权阅读),我的业务服务类有这么一个方法:Order getOrder(int orderId),acegi的处理方式是针对调用方法的参数进行检验,但我们实际需要的是针对返回结果的校验,这并不是唯一的特例,实际情况还有很多,所以我感觉,针对实例级的ACL控制,用AOP来处理并不是很现实。 楼上兄弟,不敢苟同 个人认为ACL采取的恰恰就是针对返回结果的校验, <bean id="afterAclRead" class="org.acegisecurity.afterinvocation.BasicAclEntryAfterInvocationProvider"> 我想这也是afterAclRead名称的来由,它的decide方法正是对结果返加进行处理的 我想说的是大量数据分页的情况,不可能一次将所有结果都load出来的时候,只好先count(*)后limit的情况下,这种产生虎牙子的情况如何解决? |
|
返回顶楼 | |
发表时间:2006-08-03
liuyifan.com 写道 balaschen 写道 如果通过ResultSet分页,产生虎牙是肯定,如果不想产生虎牙,那只有在客户端分页,想想如果有一次有10万条记录需要分页的话,这效率。。。
acegi对于Security Object的权限校验,通过AOP拦截方法并不是很有效,比如,我需要对Order对象进行权限检验(假设张三有权阅读,李四无权阅读),我的业务服务类有这么一个方法:Order getOrder(int orderId),acegi的处理方式是针对调用方法的参数进行检验,但我们实际需要的是针对返回结果的校验,这并不是唯一的特例,实际情况还有很多,所以我感觉,针对实例级的ACL控制,用AOP来处理并不是很现实。 楼上兄弟,不敢苟同 个人认为ACL采取的恰恰就是针对返回结果的校验, <bean id="afterAclRead" class="org.acegisecurity.afterinvocation.BasicAclEntryAfterInvocationProvider"> 我想这也是afterAclRead名称的来由,它的decide方法正是对结果返加进行处理的 我想说的是大量数据分页的情况,不可能一次将所有结果都load出来的时候,只好先count(*)后limit的情况下,这种产生虎牙子的情况如何解决? 那假如我要删除一个Object呢 比如:deleteOrder(int orderId)又该怎么处理呢,我想,为了满足acegi的要求,必需先loadObject,然后提供一个deleteOrder(Order order)的方法来删除吧,这是否表示如果我们使用acegi,在编写业务逻辑代码的时候,必须遵循某些潜在的契约,那这种方式对业务层还算透明嘛 |
|
返回顶楼 | |
发表时间:2006-08-03
又仔细思考了一下,要求业务层的方法遵循类似deleteOrder(Order order)形式,而不允许deleteOrder(String orderId)从面向对象编程角度也是可行的。考虑在下一版本的权限控制模型采用acegi来实现 ,对于集合数据过滤后的问题,我也想知道如何解决。
|
|
返回顶楼 | |
发表时间:2006-08-03
对于分页数据过滤后产生的虎牙子,估计是个难题,连IBM都解决不好,我以前在用Lotus Domino开发时,Domnio本身提供了很好的安全机制,但用视图分页时,也有这个问题.
|
|
返回顶楼 | |