我目前正在做一项研究
spring-boot 2.0
REST
web应用程序的后端。这个
spring-boot
申请收到
OAuth2
AccessTokens用于身份验证,具有用于授权的特定于应用程序的角色。现在我想确保各种
休息
基于
OAuth2
角色。我正在寻找一种解决方案,它不会将我的代码直接与角色耦合,
不
喜欢
@PreAuthorize("hasRole('ADMIN')")
.
除了授权之外
休息
端点还应返回自定义结果(例如,如果请求包含有效的
OAuth2
具有“company_A_internal”角色的令牌,响应应包含在“company_A”上过滤的结果集。
到目前为止,我已经完成了:
-
基于
OAuth2
代币
spring-security
-
地图
OAuth2
将角色标记为
春季安全
GrantedAuthorities
因此
SecurityContextHolder.getContext().getAuthentication().getAuthorities()
返回以前的角色
我要找的是:
基于角色(现在存储在
授权机构
)那个
休息
端点应该由单独的机制保护。我做了一些研究,发现了一个非常有趣的问题
article
.
我想实现类似的功能(例如作为单独的角色_config.yml):
order_manager:
'/orders':
- 'GET'
- 'POST'
- 'PUT'
- 'DELETE'
order_editor:
'/orders':
- 'GET'
- 'POST'
- 'PUT'
order_inspector:
'/orders':
- 'GET'
之后,我只需要在
弹簧靴
背景:
@Secured
@RequestMapping("/orders")
public void updateOrder (Order order) {
Order updatedOrder = process(order);
return updatedOrder;
}
在这种情况下,这将如何工作
春季安全
? 在我目前的设置之上,有没有可能实现这一点?
我感谢任何建议和帮助,并将很乐意回答评论和进一步的问题。