我正在使用Spring Security进行OAuth2身份验证,请求使用用户名和密码,就像在正常流程中一样。但是,我想添加另一种身份验证方法,即相同的OAuth,但请求中具有不同的参数。 (例如,id和clientToken-在到达我的服务之前已经完成了身份验证)。最后,当两种类型的请求都到达我的身份验证服务时,它必须返回一个oauth令牌,此令牌会得到进一步增强。可以在oauth端点网址上使用2个不同的身份验证提供程序吗?
答案 0 :(得分:2)
实际上,spring oauth2 TokenEndpoint
中包含以下代码行:
OAuth2AccessToken token = this.getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);
因此spring使用TokenGranter
抽象来授予令牌。
当您搜索特定的实现时,例如ResourceOwnerPasswordTokenGranter
,您会发现它使用AuthentiacionManager
来容纳AuthenticationProviders
。
所以答案是肯定的-可能的。