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

如何在HttpClient Wiretap日志中隐藏Authorization请求头?

可行,以下是实现方法

默认的Wiretap日志会记录所有请求头信息,要隐藏Authorization头,你需要自定义日志格式化器,对请求头进行过滤后再输出。

步骤1:自定义HttpLogFormatter

创建一个自定义的HttpLogFormatter,重写formatRequest方法,移除Authorization请求头:

import reactor.netty.http.HttpLogFormatter;
import reactor.netty.http.HttpInfos;
import reactor.netty.http.client.HttpClientRequest;

public class RedactingHttpLogFormatter extends HttpLogFormatter {
    @Override
    public String formatRequest(HttpClientRequest request, HttpInfos infos) {
        // 复制请求对象并移除Authorization头,避免修改原请求
        HttpClientRequest redactedRequest = request.mutate()
                .removeHeader("Authorization")
                .build();
        // 调用父类方法格式化处理后的请求
        return super.formatRequest(redactedRequest, infos);
    }
}

步骤2:配置HttpClient使用自定义格式化器

在创建HttpClient的Wiretap时,指定自定义的格式化器,替代默认的AdvancedByteBufFormat.TEXTUAL:

import reactor.netty.http.client.HttpClient;
import io.netty.handler.logging.LogLevel;

HttpClient httpClient = HttpClient.create()
        .wiretap("reactor.netty.http.client.HttpClient",
                LogLevel.INFO,
                new RedactingHttpLogFormatter());

补充说明

  • 自定义格式化器通过mutate()方法复制请求对象,移除Authorization头后再格式化,不会影响实际发送的请求内容。
  • 如果还需要过滤响应头,同样可以重写formatResponse方法进行类似处理。

内容的提问来源于stack exchange,提问作者GWL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:20:19