使用logback.xml regex屏蔽Authorization字段



我正在尝试屏蔽logback.xml中的Authorization字段。可能的值是

  1. 授权:"承载人abcdfdd">
  2. 授权:";基本abcdfdd===";(以==结尾(
  3. 授权:Bearer abcdfdd

在logback.xml 中

<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<springProperty scope="context" name="springAppName" source="spring.application.name"/>

<property name="CONSOLE_LOG_PATTERN"
value="%d [%thread] %-5level %logger{64} - %replace(%replace(%replace(%msg){'Authorization:&quot;Bearer\s?[\w\-\. ]*', 'Authorization:xxxxx'}){'Authorization:&quot;Basic\s?[\w\-\. ]*', 'Authorization:xxxxx'}){'Authorization:\s?[\w\-\. ]*', 'Authorization:xxxxx'}%n"/>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>

输出是

  1. 授权:xxxx
  2. 授权:xxxxx==
  3. 授权:xxxx

我不确定我的正则表达式有什么问题,正则表达式没有取代第二个点==。有人能帮忙吗?

您可以为给定的可能值尝试这个简单的正则表达式

<property name="CONSOLE_LOG_PATTERN" value="%d [%thread] %-5level %logger{64} - **%replace(%msg){'Authorization: Bearer s*(.*)', 'Authorization:****'}**%n"/>

最新更新