【问题标题】:When does a Spring @PostFilter execute?Spring @PostFilter 何时执行?
【发布时间】:2012-01-14 05:05:51
【问题描述】:

我正在使用 spring 的 @Around 注释来提供 DAO 调用的缓存,并使用 spring security 的 @PostFilter 来限制某些记录的查看。但是我担心缓存可能会绕过 PostFilter 并带来安全问题。

我如何知道@PostFilter@Around 包裹目标对象的顺序?

【问题讨论】:

    标签: spring spring-security aop


    【解决方案1】:

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

    您还可以指定您自己的方面的顺序,如7.2.4.7 Advice ordering 中所述:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 2020-12-16
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 2020-02-23
      相关资源
      最近更新 更多