gpt4 book ai didi

spring - 如何将资源限制为当前用户拥有的资源

转载 作者:行者123 更新时间:2023-12-01 03:38:37 24 4
gpt4 key购买 nike

我有一个父对象,它属于一个用户(在 Spring 安全意义上)。

我想使用 spring-data-rest 的所有优点,但不必为了按当前用户进行过滤而覆盖一吨、修改查询等。

是否有捷径可寻?

总结一下,我想要这样的东西:

@PreAuthorize("hasRole('USER')")
@RepositoryRestResource(collectionResourceRel = "tasks", path="tasks")
public interface TaskRepository extends PagingAndSortingRepository<Task, Long> {}

...当我转到“/tasks”时,它只显示属于经过身份验证的用户的任务。如果不需要,我不想使用像“/users/foo/tasks”这样的网址。

这是可行的吗?

最佳答案

我建议 @Override用于保护实体的各个方法。

@PreAuthorize("hasRole('USER')")
@RepositoryRestResource(collectionResourceRel = "tasks", path="tasks")
public interface TaskRepository extends PagingAndSortingRepository<Task, Long> {
@PostAuthorize("returnObject.owner.username == principal.username")
Task findOne(Long id);
}

http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#access-control-using-preauthorize-and-postauthorize

关于spring - 如何将资源限制为当前用户拥有的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com