我正在使用Spring Boot和Spring Data Rest创建一个简单的CRUD-App(购物清单)。我有一个资源:ShoppingItem。是否有一种简单的方法可以只返回属于发送请求的用户的资源? (多用户支持)因此,用户仅获得自己的ShoppingItems,而不是每个ShoppingItem。
还是我必须由我自己实现一个Controller?

我发现Spring Data REST filtering data based on the user这种基于用户的资源过滤方法,但这对于存储库端点没有帮助。

提前致谢

最佳答案

如果您使用的是Spring安全集成,则可以使用ACL(可能比较繁琐)或简单的postFilter,如下所示:

public interface ShoppingItemRepository extends CrudRepository<ShoppingItem, Long> {
    @PostFilter("filterObject.user.getId() == principal.id")
    @Override
    Iterable<ShoppingItem> findAll();
}

10-08 01:33