Ane*_*ran 12 java spring spring-security spring-security-acl
我们刚刚迁移到春季安全3.0.8从2.0.8(可"升级到latestversion这是3.2.X作为我们的核心Spring库仍然在3.0.x的,我们计划以后升级时,经营许可证).
据我所知,我们现在有注释为确保类似的方法@PreAuthorize,@PostAuthorize,@Secured,@PreFilter和@PostFilter.
我理解使用@PreAuthorize,这真的很有意义.但是不能想到你曾经使用@PostAuthorize或@PostFilter注释的任何有效用例?
使用它的人可以向我解释使用它们的合理用例吗?
提前致谢!
M. *_*num 14
无论是@PostAuthorize和@PostFilter使用居多,与ACL的组合.如果@PostAuthorize返回某个无法访问的内容,将生成异常,@PostFilter将删除无法访问的对象(通常在返回元素集合时很有用).
小智 5
@PostFilter执行方法后过滤返回的集合或数组。Spring security提供了一个名为filterObject的内置对象,用于@PostFilter执行过滤任务。
@PostFilter可以在服务层上使用@PreAuthorize和@PostAuthorize。
使用接口来声明过滤操作。
public interface IBookService {
@PreAuthorize ("hasRole('ROLE_READ')")
@PostFilter ("filterObject.owner == authentication.name")
public List<Book> getBooks();
@PreAuthorize("filterObject.owner == authentication.name")
public void addBook(List<Book> books);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3203 次 |
| 最近记录: |