使用 log4j 在日志记录期间屏蔽敏感信息
要确保详细日志消息不显示敏感信息 (例如 CVV 代码) ,请配置 log4j 实用程序以过滤日志消息。
关于此任务
例如,缺省情况下,会屏蔽安全认证代码的值。 缺省情况下,将添加以下 logFilter 属性以将其屏蔽:
filterset.paymentFilter.pattern.1=(SecureAuthenticationCode=)(["'][^"']+["'])
filterset.paymentFilter.pattern.2=(&secureAuthenticationCode=)([^&]+[&])
filterset.paymentFilter.pattern.3=(&secureAuthenticationCode=)([^&]+)$
filterset.paymentFilter.replace.1=$1"***"
filterset.paymentFilter.replace.2=$1***
filterset.paymentFilter.replace.3=$1***Sterling™ Order Management为 log4j 布局和过滤器提供了默认实现。 布局实施为 com.sterlingcommerce.woodstock.util.frame.logex.SCIFilteredPatternLayout.class,过滤器实施为 com.sterlingcommerce.woodstock.util.frame.logex.SCIPatternFilter.class。
布局实施先将日志消息传递给标准 PatternLayout (org.apache.log4j.PatternLayout.class),以获取格式化的消息。 当接收到格式化的消息时,它会根据一组可配置的正则表达式来过滤结果,然后最终返回固定字符串。 可针对每个正则表达式模式提供一个替换字符串,如果未提供,那么匹配文本将替换为缺省替换字符串。
通过过滤器实施,您可以根据一组正则表达式来匹配消息,如果匹配,那么会将其屏蔽。 Sterling Order Management System 提供了具有各种追加器规范的缺省 log4j 配置 XML。
要在记录时屏蔽敏感信息,请执行以下操作: