oauth2 的多个身份验证提供程序
Multiple authentication providers for oauth2
我正在使用 spring 安全性来执行 OAuth2 身份验证,请求采用正常流程中使用的用户名和密码。但是,我想添加另一种方法来验证相同的 OAuth,但在请求中使用不同的参数。 (例如,id 和 clientToken - 在它到达我的服务之前完成了身份验证)。最后,当两种类型的请求都到达我的身份验证服务时,它必须 return 一个进一步增强的 oauth 令牌。是否可以在 oauth 端点上有 2 个不同的身份验证提供程序 url?
实际上,在spring oauth2 TokenEndpoint
中有如下一行代码:
OAuth2AccessToken token = this.getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
因此 spring 使用 TokenGranter
抽象来授予令牌。
当您搜索特定的实现时,例如 ResourceOwnerPasswordTokenGranter
,您可以发现它使用 AuthentiacionManager
来容纳 AuthenticationProviders
.
所以答案是肯定的 - 这是可能的。
我正在使用 spring 安全性来执行 OAuth2 身份验证,请求采用正常流程中使用的用户名和密码。但是,我想添加另一种方法来验证相同的 OAuth,但在请求中使用不同的参数。 (例如,id 和 clientToken - 在它到达我的服务之前完成了身份验证)。最后,当两种类型的请求都到达我的身份验证服务时,它必须 return 一个进一步增强的 oauth 令牌。是否可以在 oauth 端点上有 2 个不同的身份验证提供程序 url?
实际上,在spring oauth2 TokenEndpoint
中有如下一行代码:
OAuth2AccessToken token = this.getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
因此 spring 使用 TokenGranter
抽象来授予令牌。
当您搜索特定的实现时,例如 ResourceOwnerPasswordTokenGranter
,您可以发现它使用 AuthentiacionManager
来容纳 AuthenticationProviders
.
所以答案是肯定的 - 这是可能的。