将CrudRepository.save()保护到特定所有者

时间:2017-02-13 03:12:12

标签: java spring spring-boot spring-security spring-data-rest

我正在使用spring-data-rest和spring-security。

假设我有这个模型:

public class Item {
    private @Id @GeneratedValue Long id;
    private final String description;
    private final String username;
}

其存储库:

public interface ItemRepository extends CrudRepository<Item, Long> {
    @Override
    @PostFilter("filterObject.username == principal.username")
    Iterable<Item> findAll();
}

findAll()方法有效,它只返回属于用户名的项目。

问题1 :如何覆盖方法save()以限制用户保存项目,只有属于他?

@Override
<S extends Item> S save(S s);

问题2 :目前我为findAllfindOne等每个方法使用了许多@PostFilter ...如何一次性将整个存储库项目限制为用户回购级别的注释? 我看到了这个answer,但也想要求更好的解决方案。

0 个答案:

没有答案