【发布时间】:2023-03-05 01:13:01
【问题描述】:
所以我试图在没有 IF 和类似东西的情况下验证我的端点,只使用 PreFilter,我基本上有以下内容
@GetMapping(value = "/books/{userId}")
@PreFilter("hasRole('ADMIN') or principal.userId == pathVar.userId")
public List<Books> getBooks(@PathVariable("userId" String userId) {
//do sth
}
我的问题是让 PreFilter 工作,或者实际上将经过身份验证的主体中的 userId 与路径变量匹配,以便每个用户只能请求自己的书籍。
是的,我知道我可以删除路径变量并在方法中执行 principal.getUserId(),但这意味着我需要一个 if 用户是管理员。
【问题讨论】:
-
为什么不创建另一个路径,例如 '/my-books` 并注入用户主体?
标签: spring spring-mvc security spring-security spring-security-oauth2