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

如何在Report Portal日志中屏蔽Authorization敏感请求头?

解决RestAssured+Report Portal屏蔽Authorization头日志问题

方案1:单独屏蔽Authorization请求头(推荐)

利用ReportPortalRestAssuredLoggingFilter的addRequestFilter方法,自定义过滤器临时移除Authorization头后再恢复,避免敏感数据被日志记录:

import com.epam.reportportal.restassured.ReportPortalRestAssuredLoggingFilter;
import io.restassured.filter.Filter;
import io.restassured.filter.FilterContext;
import io.restassured.response.Response;
import io.restassured.specification.FilterableRequestSpecification;
import io.restassured.specification.FilterableResponseSpecification;

public class AuthorizationHeaderFilter implements Filter {
    @Override
    public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
        // 临时移除Authorization头,防止被Report Portal日志捕获
        String authHeader = requestSpec.getHeaders().get("Authorization");
        if (authHeader != null) {
            requestSpec.removeHeader("Authorization");
        }
        
        // 执行实际API请求
        Response response = ctx.next(requestSpec, responseSpec);
        
        // 恢复Authorization头,不影响后续请求逻辑
        if (authHeader != null) {
            requestSpec.header("Authorization", authHeader);
        }
        
        return response;
    }
}

将自定义过滤器添加到Report Portal的日志过滤器中:

ReportPortalRestAssuredLoggingFilter rpLoggingFilter = new ReportPortalRestAssuredLoggingFilter();
rpLoggingFilter.addRequestFilter(new AuthorizationHeaderFilter());

// 绑定到RestAssured全局配置,或单个请求实例
RestAssured.filters(rpLoggingFilter);

这个方案仅屏蔽Authorization头的日志,不影响其他请求头和请求体的记录,也不会干扰实际API调用逻辑。

方案2:移除所有请求头日志(备选)

如果不需要记录任何请求头,可直接指定Report Portal过滤器的日志类型,排除请求头:

import com.epam.reportportal.restassured.ReportPortalRestAssuredLoggingFilter;
import com.epam.reportportal.restassured.LoggingType;

// 仅记录请求体和响应内容,不记录请求头
ReportPortalRestAssuredLoggingFilter rpLoggingFilter = new ReportPortalRestAssuredLoggingFilter(
    LoggingType.REQUEST_BODY, 
    LoggingType.RESPONSE
);

RestAssured.filters(rpLoggingFilter);

也可以通过setLoggingTypes方法动态调整:

rpLoggingFilter.setLoggingTypes(LoggingType.REQUEST_BODY, LoggingType.RESPONSE);

验证方法

执行测试用例后,查看Report Portal的测试日志:

  • 方案1:仅Authorization头不会出现在日志中,其他请求头正常显示
  • 方案2:所有请求头均不会被记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:54:55