我试图授权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);
}
Run Code Online (Sandbox Code Playgroud)
同样在同一个项目中我有一个带ACL机制的服务层,它正在工作.
我无法在Spring Data REST中使用PostFilter表达式,即:
@PostFilter("hasPermission(filterObject, 'read') or hasPermission(filterObject, admin)")
List<Book> findAll();
Run Code Online (Sandbox Code Playgroud)
如果有人在Spring Data REST中使用ACL,那将会有很大的帮助.
注意:我知道以下未解决的问题:
我能够一次POST(插入)一个实体.我想在一次api调用时POST一组实体.
CrudRepository有
<S extends T> Iterable<S> save(Iterable<S> entities);
Run Code Online (Sandbox Code Playgroud)
如何从Spring Data REST调用上面的方法?已经尝试以数组的形式发布多个实体,但是没有用.
提供批量插入功能是否违反了HATEOAS原则?如果不是,Spring Data REST是否提供了执行此操作的任何默认方式.