【发布时间】:2013-05-06 15:55:08
【问题描述】:
我已经使用 Spring MVC 3.1 创建了一个 Web 服务 (RESTful),并添加了 Spring 安全性。其中一个端点是/users/{id},它应该只对管理员可用。但是,当且仅当检索到的资源的用户名与登录用户的用户名匹配时,/users/{id} 也可供用户使用。这可以通过使用 @PostAuthorize 注释来解决。
现在,如果用户访问/users/999(不是登录用户),我应该返回 HTTP 状态 404 还是 HTTP 状态 403?目前我正在执行 404(未找到),但它应该是 403,因为用户不应该能够访问它吗?
如果是这样,当您依赖 @PostAutorize 注释时,您将如何做到这一点?
@PostAuthorize("returnObject.username == principal.username and hasRole('ROLE_USER')")
【问题讨论】:
标签: java spring jakarta-ee spring-security