我正在尝试授权 Spring Data REST 公开的 api。到目前为止,我能够进行基于角色的授权,即:
@RepositoryRestResource(path = "book")
public interface BookRepository extends JpaRepository<Book, Long> {
@PreAuthorize("hasRole('ROLE_ADMIN')")
<S extends Book> Book save(Book book);
}
同样在同一个项目中,我有一个具有 ACL 机制的服务层,它正在工作。
我无法将 PostFilter 表达式与 Spring Data REST 一起使用,即:
@PostFilter("hasPermission(filterObject, 'read') or hasPermission(filterObject, admin)")
List<Book> findAll();
如果有人将 ACL 与 Spring Data REST 一起使用,那将有很大帮助。
注意:我知道以下未解决的问题: