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

WSO2 APIM如何移除api.log日志中的Authorization请求头

WSO2 APIM API_LOG中Bearer令牌脱敏解决方案

问题根源

你之前的配置失败主要有三个原因:

  1. 正则表达式未匹配日志里"authorization=Bearer xxx"的完整格式,原正则authorization:[^,]*抓不住带引号的字段结尾
  2. 替换字符串格式和原日志不匹配,且没处理好引号的转义
  3. 错误使用了apim.message属性,API_LOG的日志格式得通过日志appender的layout来配置

正确配置方案

方案1:修改log4j.properties(直接调整日志输出格式)

找到<APIM_HOME>/repository/conf/log4j.properties,定位到API_LOG相关配置,替换成以下内容:

# API_LOG 基础配置
logger.API_LOG.name = API_LOG
logger.API_LOG.level = INFO
logger.API_LOG.appenderRef.API_LOG_APPENDER.ref = API_LOG_APPENDER
logger.API_LOG.additivity = false

# API_LOG 输出appender配置
appender.API_LOG_APPENDER.type = RollingFile
appender.API_LOG_APPENDER.name = API_LOG_APPENDER
appender.API_LOG_APPENDER.fileName = ${sys:carbon.home}/repository/logs/api.log
appender.API_LOG_APPENDER.filePattern = ${sys:carbon.home}/repository/logs/api-%d{MM-dd-yyyy}.log
appender.API_LOG_APPENDER.layout.type = PatternLayout
# 核心:添加%replace规则脱敏Bearer令牌
appender.API_LOG_APPENDER.layout.pattern = [%d] %5p {%c} %replace{%m}{"authorization=Bearer [^"]*"}{"authorization=Bearer ***"}%n

方案2:用APIM内置掩码配置(更简洁,无需修改log4j)

直接在<APIM_HOME>/repository/conf/deployment.toml里添加以下配置:

[apim.logging]
# 指定要掩码的请求头
mask.headers = ["Authorization"]
# 定义掩码规则:匹配Bearer后的令牌,替换为***
mask.patterns = [{"pattern":"Bearer (.*)","replacement":"Bearer ***"}]

验证步骤

  1. 重启WSO2 APIM服务
  2. 调用带Bearer令牌的API接口
  3. 打开api.log检查,确认authorization字段已变成"authorization=Bearer ***"

内容的提问来源于stack exchange,提问作者Javier Decena Castillo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:35:19