我正在进行Spring Security Oauth 2.x到Spring Security 5.2的迁移,遇到了下面的拦截器。正如我所看到的,OAuth2RestTemplate
不再使用了,取而代之的是WebClient
。所以我正在修改我的代码库,使webclient工作。
在Oauth2中,我们有一个选项可以使用oAuth2RestTemplate.getAccessToken()
直接从RestTemplate获取令牌,我在WebClient中找不到类似的东西。这是为了调用一个外部微服务。是否有任何选项可以从WebClient获取accesstoken?或者它在那里以不同的方式处理?
2条答案
按热度按时间mxg2im7a1#
和往常一样,在使用spring security时,很多事情都是按照约定自动配置的。您应该熟悉与oauth相关的Spring安全配置。
学习spring security docu或Baeldung关于此主题的许多优秀文章之一是一个很好的起点(也许这篇文章会有所帮助:https://www.baeldung.com/spring-oauth-login-webflux)。
正确配置之后,下面的方法将创建一个
WebClient
,其中包含根据需要在filter方法中自动创建的正确的oauth令牌。在本例中,类型为
ReactiveOAuth2AuthorizedClientManager
的Bean负责此操作,该Bean在清单2中创建。此外,还需要配置Oauth服务器URL和凭据,清单3给出了一个简单的示例。
此示例无需处理访问令牌即可运行。
xfyts7mz2#
检查是否有帮助