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

如何配置Spring RequestDumperFilter使其不记录敏感请求头

关于Spring RequestDumperFilter敏感请求头过滤配置的解答

可以实现该需求,但原生RequestDumperFilter没有直接提供排除指定请求头的配置项,通常有两种可行方案:

方案1:自定义扩展RequestDumperFilter(推荐)

核心思路是继承原生过滤器重写请求头处理逻辑,过滤敏感信息后再输出:

  • 首先定义自定义过滤器类,示例代码:
import org.springframework.web.filter.RequestDumperFilter;
import javax.servlet.http.HttpServletRequest;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;

public class SensitiveRequestDumperFilter extends RequestDumperFilter {
    // 可按需添加其他敏感头
    private static final List<String> SENSITIVE_HEADERS = List.of("Authorization", "Cookie", "Proxy-Authorization");

    @Override
    protected Enumeration<String> getHeaderNames(HttpServletRequest request) {
        // 直接从输出列表中移除敏感头
        return Collections.enumeration(
                Collections.list(super.getHeaderNames(request))
                        .stream()
                        .filter(header -> !SENSITIVE_HEADERS.contains(header))
                        .toList()
        );
    }
    
    // 如果希望保留头名、只隐藏值,也可以重写getHeader方法:
    // @Override
    // protected String getHeader(HttpServletRequest request, String header) {
    //     if (SENSITIVE_HEADERS.contains(header)) {
    //         return "[REDACTED]";
    //     }
    //     return super.getHeader(request, header);
    // }
}
  • 随后将自定义过滤器注册到Spring容器,替换原生实现:
@Bean
public FilterRegistrationBean<RequestDumperFilter> requestDumperFilter() {
    FilterRegistrationBean<RequestDumperFilter> registration = new FilterRegistrationBean<>();
    registration.setFilter(new SensitiveRequestDumperFilter());
    registration.addUrlPatterns("/*"); // 按需调整拦截路径
    return registration;
}

方案2:日志框架层脱敏

如果不想修改代码,也可以通过日志框架的替换规则直接脱敏输出内容,以Logback为例的配置示例:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %d{yyyy-MM-dd HH:mm:ss} %replace(%msg){'Authorization=[^,\s\]]+', 'Authorization=[REDACTED]'}%n
            </pattern>
        </encoder>
    </appender>
</configuration>

注意:如果使用Spring Boot旧版本,需确认RequestDumperFilter的方法签名是否和示例一致,部分低版本需调整重写的方法名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:15:03