【发布时间】:2017-05-23 05:02:56
【问题描述】:
我有一个使用 Spring Security 和 OAuth2 用 Spring Boot 编写的 REST API。以这种方式保护资源:
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/v1/security/**").hasRole("ADMIN");
}
我想根据项目介绍 API 的新部分,其中权限是细粒度的。让我们考虑一个打印项目配置的简单端点。
GET /api/v1/project/{projectId}/config
如何将资源服务器配置为只允许具有ROLE_PROJECT_{projectId}_ADMIN 角色的用户访问,而无需手动指定所有项目?
此外,如果此机制有特定名称,请在 cmets 中告诉我,我可以更改问题标题。
【问题讨论】:
-
如果您使用 Spring MVC,在控制器方法上添加
@PreAuthorize注释通常是处理细粒度权限的最佳方式。
标签: java spring rest spring-security