我正在使用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 :目前我为findAll
和findOne
等每个方法使用了许多@PostFilter ...如何一次性将整个存储库项目限制为用户回购级别的注释?
我看到了这个answer,但也想要求更好的解决方案。