You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Spring WebClient跟随重定向并持续传递访问令牌/授权头

问题根因

Reactor Netty 默认的自动跟随重定向策略出于安全考虑,不会将原始请求中的Authorization请求头透传到重定向后的目标地址,因此仅开启followRedirect(true)配置的情况下,重定向请求会因缺少访问令牌返回401错误。

修复配置

你需要自定义重定向处理逻辑,手动透传Authorization头到重定向请求中,完整WebClient配置示例如下:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.netty.http.client.HttpClient;

@Configuration
public class WebClientConfig {

    @Bean
    public WebClient redirectSupportedWebClient() {
        HttpClient httpClient = HttpClient.create()
                .followRedirect(true, (originalRequest, redirectResponse) -> 
                    // 重定向请求构造时透传原始请求的Authorization头
                    (redirectReq, res) -> {
                        String authHeader = originalRequest.requestHeaders().get(HttpHeaders.AUTHORIZATION);
                        if (authHeader != null) {
                            redirectReq.requestHeaders().set(HttpHeaders.AUTHORIZATION, authHeader);
                        }
                        return redirectReq;
                    }
                );

        return WebClient.builder()
                .clientConnector(new ReactorClientHttpConnector(httpClient))
                // 若使用Spring Security OAuth2 Client自动管理client credentials令牌,需添加对应过滤器自动注入令牌
                // .filter(ServerOAuth2AuthorizedClientExchangeFilterFunction.clientCredentials())
                .build();
    }
}
注意事项
  • 上述配置默认会在所有重定向请求中携带访问令牌,若需避免令牌跨域泄露,可以增加逻辑判断原始请求域名和重定向目标域名是否一致,仅同域名时才透传Authorization头。
  • 若你手动在每次请求时添加Authorization头,该配置会自动透传;如果是通过OAuth2客户端自动管理令牌,只需要补充注释中的过滤器配置即可,无需手动处理令牌注入。

内容的提问来源于stack exchange,提问作者Life long learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:21:01