如何使 spring webclient 跟随重定向访问 token/authorization header?

How to make spring webclient follow redirect with access token/authorization header?

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

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

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

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

Authorization 这样的敏感 header 会在重定向到不同域时从初始化请求中删除。

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

followRedirect(boolean followRedirect, Consumer<HttpClientRequest> redirectRequestConsumer)

为了 re-add Authorization header 使用 redirectRequestConsumer.

有关详细信息,请参阅 Javadoc here and Reactor Netty documentation here