oauth2的多个身份验证提供程序

时间:2019-05-29 21:55:10

标签: spring-boot spring-security jhipster

我正在使用Spring Security进行OAuth2身份验证,请求使用用户名和密码,就像在正常流程中一样。但是,我想添加另一种身份验证方法,即相同的OAuth,但请求中具有不同的参数。 (例如,id和clientToken-在到达我的服务之前已经完成了身份验证)。最后,当两种类型的请求都到达我的身份验证服务时,它必须返回一个oauth令牌,此令牌会得到进一步增强。可以在oauth端点网址上使用2个不同的身份验证提供程序吗?

1 个答案:

答案 0 :(得分:2)

实际上,spring oauth2 TokenEndpoint中包含以下代码行:

OAuth2AccessToken token = this.getTokenGranter().grant(tokenRequest.getGrantType(), tokenRequest);

因此spring使用TokenGranter抽象来授予令牌。 当您搜索特定的实现时,例如ResourceOwnerPasswordTokenGranter,您会发现它使用AuthentiacionManager来容纳AuthenticationProviders

所以答案是肯定的-可能的。