在,和spring-security-oauth2:2.4.0.RELEASE
等类中OAuth2RestTemplate
,所有这些都已被标记为已弃用。OAuth2ProtectedResourceDetails
ClientCredentialsAccessTokenProvider
从这些类的javadoc中,它指向Spring Security迁移指南,该指南暗示人们应迁移到核心Spring-security 5项目。但是,我在寻找如何在该项目中实现用例时遇到了麻烦。
如果您希望对应用程序的传入请求进行身份验证并且想要使用第三方OAuth提供程序来验证身份,则所有文档和示例都讨论了与第三部分OAuth提供程序集成的问题。
在我的用例中,我要做的就是RestTemplate
向受OAuth保护的外部服务发出请求。目前OAuth2ProtectedResourceDetails
,我使用客户ID和密码创建了一个,并将其传递给OAuth2RestTemplate
。我还ClientCredentialsAccessTokenProvider
向添加了一个自定义,该自定义OAuth2ResTemplate
仅向我使用的OAuth提供程序所需的令牌请求添加了一些额外的标头。
在spring-security 5文档中,我找到了提到自定义令牌请求的部分,但该部分还是与第三方OAuth提供者对传入请求进行身份验证有关。目前尚不清楚如何将其与类似的东西结合使用,ClientHttpRequestInterceptor
以确保对外部服务的每个传出请求都首先获得令牌,然后再将令牌添加到请求中。
同样,在上面链接的迁移指南中,引用了一个OAuth2AuthorizedClientService
,它说对在拦截器中使用很有用,但是这看起来又像是依赖于这样的东西ClientRegistrationRepository
,如果您想使用,它似乎在其中为第三方提供商维护注册。提供以确保对传入请求进行身份验证。
有什么方法可以利用spring-security 5中的新功能来注册OAuth提供程序,以便获得令牌以添加到应用程序的传出请求中?
WebClient
)或类似的东西从中获取OAuth令牌自定义OAuth提供程序(不是受支持的OoTB之一,如Facebook / Google),以便将其添加到外发请求中。所有这些示例似乎都集中在与其他提供者之间对传入请求进行身份验证。你有任何好的例子的指针吗?