如何定义正则表达式 "password":"[123456]" 用于屏蔽

How to define regex "password":"[123456]" for masking

我使用 logback(logback-gelf vs.1.1.0)登录我的 spring 启动应用程序。它有配置 xml 文件,我尝试在这个配置文件中编写正则表达式来屏蔽密码。我这样写:

%replace(%msg){'(password...)(\d{6})(.)', '****'}

它与 {"password":"123456"} 一起工作并给出输出 {"password":"****"}。 但是,它不能用于:

{"client_id":["account"],"password":["111111"],"grant_type":["password"]}

我想做到{"client_id":["account","password":["****"],"grant_type":["password"]}

我该怎么做?

你的正则表达式的问题是它总是考虑字符串 "password" 和实际密码之间的 3 个字符。

改为这样做:

%replace(%msg){'(password"\S+?")(\S+?)(".+)', '****'}

Demo