Authentication 身份验证中的数据实时访问

Authentication 身份验证中的数据实时访问,authentication,spring-security,role-base-authorization,Authentication,Spring Security,Role Base Authorization,我正在构建一个web应用程序,并且有一些操作是为已识别的人提供保护的 我使用sping安全性进行访问控制,但是当深入到数据级别时,我不知道如何控制它们 对于exmaple,有两种操作列表和编辑操作 公司的管理员和一个部门的管理员都可以访问这些操作,但他们可以“列出”或“编辑”的数据不同 公司的管理员可以访问公司的所有数据,而一个部门的管理员只能访问他/她的部门的数据 因此,我想知道实现这些要求的最佳实践是什么? 最简单的方法-在服务层上使用PostFilter注释 @Transactional(

我正在构建一个web应用程序,并且有一些操作是为已识别的人提供保护的

我使用sping安全性进行访问控制,但是当深入到数据级别时,我不知道如何控制它们

对于exmaple,有两种操作
列表
编辑
操作

公司的
管理员
和一个部门的
管理员
都可以访问这些操作,但他们可以“列出”或“编辑”的数据不同

公司的管理员
可以访问公司的所有数据,而
一个部门的管理员
只能访问他/她的部门的数据

因此,我想知道实现这些要求的最佳实践是什么?

最简单的方法-在服务层上使用PostFilter注释

@Transactional(readonly=true)
@PostFilter(“hasPermission(filterObject,'edit'))
列出getData();
@交易的
@预授权(“hasPermission(#data,'edit'))
列出编辑部门数据(部门数据);
或者另一个例子:

@Transactional(readonly=true)
@后过滤器(
“hasRole(‘公司行政’)”+
“| |(hasRole('department|u admin')&过滤器对象department.equals(principal.department))”)
列出getData();