我们正在使用 Spring Security 的 ACL Annotations 来允许访问某些 Web 服务。@PreAuthorize
并且@PostAuthorize
似乎非常有用,并且有利于我们拥有的大多数用例。基于 SPEL 的单个方法等规则正在帮助我们在应用程序及其服务上实现细粒度的安全性。
例如:- 我们检查返回对象的所有者,如下所示
@PreAuthorize("hasRole('ROLE_ADMIN') and returnObject.owner == authentication.name")
public SomeDTO getSomeDTO(){ ... }
当返回单个对象时,这可以正常工作。如果返回一个 List 会是什么等价物?我们如何遍历一个集合并使用 SPEL 检查该集合中的各个元素属性?