Spring @PostFilter 什么时候执行?

发布于 2024-12-05 03:06:23 字数 193 浏览 2 评论 0原文

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

如何判断 @PostFilter@Around 包裹目标对象的顺序?

I am using spring's @Around annotations to provide caching of DAO calls and also using spring security's @PostFilter to restrict the viewing of certain records. However I am concerned that the cache could bypass the PostFilter and present a security problem.

How do I tell what order @PostFilter and @Around wrap the target object?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无人问我粥可暖 2024-12-12 03:06:23

您可以通过设置 order 属性来指定 Spring Security 方面的顺序(我猜默认情况下它为零)。

您还可以指定自己方面的顺序,如 7.2.4.7 建议排序

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

You can specify an order of Spring Security's aspects by setting the order attribute of <security:global-method-security> (I guess it's zero by default).

You can also specify an order of your own aspect as described in 7.2.4.7 Advice ordering:

The highest precedence advice runs first "on the way in" (so given two pieces of before advice, the one with highest precedence runs first). "On the way out" from a join point, the highest precedence advice runs last (so given two pieces of after advice, the one with the highest precedence will run second).
...
You can control the order of execution by specifying precedence. This is done in the normal Spring way by either implementing the org.springframework.core.Ordered interface in the aspect class or annotating it with the Order annotation. Given two aspects, the aspect returning the lower value from Ordered.getValue() (or the annotation value) has the higher precedence.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文