2011-09-15 86 views
1

我使用spring的@Around注解来提供DAO调用的缓存,并且还使用spring security的@PostFilter来限制查看某些记录。不过,我担心缓存可能会绕过PostFilter并出现安全问题。Spring @PostFilter何时执行?

我该如何判断@PostFilter@Around包装目标物体的顺序?

回答

3

您可以通过设置order属性<security:global-method-security>(我猜它默认为零)来指定Spring Security方面的顺序。

7.2.4.7 Advice ordering描述您还可以指定自己的方面的一个顺序:

优先级最高的通知会先执行“在路上”的建议之前,(所以给定两件,一个具有最高优先顺序先运行)。从连接点出来的“出路”中,最高优先级通知最后运行(因此给定两条通知后,优先级最高的通道将运行第二条通道)。
...
您可以通过指定优先级来控制执行顺序。这是以普通的Spring方式完成的,方法是在aspect类中实现org.springframework.core.Ordered接口或使用Order注释对其进行注释。给定两个方面,从Ordered.getValue()(或注释值)返回较低值的方面具有较高的优先级。

+0

谢谢,它做了一些尝试,以使其正确。 – chotchki