我正在研究网关后面的服务方法,以便轻松进行通信。Spring安全性全局预授权规则
该计划在oauth令牌中使用该范围,该范围将由在同一系统上运行的服务使用。
例如。如果oauth令牌具有作用域'acct'和'user',则可以使用bellow api方法。在不更改注释的情况下,我希望它也可用,前提是令牌具有“管理员”范围,并且缺少其中一个或两个范围的“acct”和“user”。
@PreAuthorize("#oauth2.hasScope('acct') and #oauth2.hasScope('user')")
@RequestMapping(value = "/scopedtest", produces = "application/json")
public Map<String, String> indexWithScope() {
return getHashMapResult();
}
我想这个“管理员”范围被全球所接受,使服务开发人员不必包括每个API控制自己给管理员范围,但仍允许内部服务访问的其他内部服务的API 。
这将作为拦截预授权的调用并将响应更改为调用者被授权(如果具有“管理”范围)的代码。如果oauth标记具有从预授权标注中要求的作用域,则该调用将正常工作。