如何在Spring Oauth中定义不同的安全策略(客户端不同资源的不同范围)
我查看了 OAUTH_CLIENT_DETAILS 的表格架构。
我们可以定义RESOURCE_IDS列表以及范围和角色列表。但我需要对每个资源的访问进行更细粒度的控制。
例如 1. client1在[resource1]上具有范围[user],但同时client1在[resource2]上具有范围[admin,user]。 IAM AWS中的相同想法。
我们如何在spring security中配置或实现它?
答案 0 :(得分:0)
如何在范围名称中组合资源ID。然后,作用域类似于RESOURCE1.user,RESOURCE2.admin,RESOURCE2.user,RESOURCE2.admin。例如,如果您的资源是账户api和贷款api,那么范围将类似于user-api.user,user-api.admin,loan-api.user,loan-api.admin等。
然后从资源服务器控制器端使用
@PreAuthorize("#oauth2.hasScope('user-api.user')")