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

如何在Karate日志与报告中屏蔽Authorization请求头?

Karate 屏蔽API请求中Authorization头的可运行代码示例

步骤1:创建自定义LogModifier类

实现LogModifier接口,专门处理请求中的Authorization头掩码:

import com.intuit.karate.Logger;
import com.intuit.karate.core.ScenarioContext;
import com.intuit.karate.http.HttpRequest;
import com.intuit.karate.http.LogModifier;

public class CustomLogModifier implements LogModifier {

    @Override
    public HttpRequest modifyRequest(HttpRequest request, ScenarioContext context, Logger logger) {
        if (request.getHeaders().containsKey("Authorization")) {
            String originalAuth = request.getHeaders().get("Authorization");
            // 根据Authorization类型做掩码,示例保留Bearer前缀
            String maskedAuth = originalAuth.startsWith("Bearer ") 
                ? "Bearer ***" 
                : "***";
            request.getHeaders().put("Authorization", maskedAuth);
        }
        return request;
    }

    // 可选:如果需要屏蔽响应中的Authorization头,取消下面注释并实现
    // @Override
    // public HttpResponse modifyResponse(HttpResponse response, ScenarioContext context, Logger logger) {
    //     if (response.getHeaders().containsKey("Authorization")) {
    //         response.getHeaders().put("Authorization", "***");
    //     }
    //     return response;
    // }
}

步骤2:在Karate配置中启用自定义LogModifier

修改karate-config.js,配置自定义类:

function fn() {
    karate.configure('logModifier', Java.type('com.your.package.CustomLogModifier'));
    // 其他配置项...
    return {};
}

注意事项

  • 替换com.your.package为你实际的Java包路径
  • 确保自定义类放在项目的src/test/java或src/main/java目录下,保证能被Karate加载到
  • 可以根据需求调整掩码规则,比如保留前几位字符再替换后面的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 07:00:03