首页 > 解决方案 > 如何使用访问令牌/授权标头使 spring webclient 跟随重定向?

问题描述

我们正在使用带有 webflux 的 spring boot 2.4.5 并调用具有客户端凭据授予类型的服务。我们注意到的是 webclient 没有遵循重定向。

我们如何让 webclient 遵循重定向,它可以继续传递访问令牌,直到它获得 http 200?

添加以下代码段不会将访问令牌传递给重定向的 url,它会返回 401。

 WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(
                        HttpClient.create().followRedirect(true)
                ))

标签: spring-bootoauth-2.0spring-security-oauth2spring-webclientclientcredential

解决方案


Authorization当重定向到不同的域时,从初始化的请求中删除敏感的标头。

您可以使用以下变体followRedirect(boolean)

followRedirect(boolean followRedirect, Consumer<HttpClientRequest> redirectRequestConsumer)

为了使用重新添加Authorization标题redirectRequestConsumer

有关更多详细信息,请参阅此处的 Javadoc 。


推荐阅读