Class SensitiveDataMasker
java.lang.Object
io.leandev.appfuse.http.logging.SensitiveDataMasker
敏感資訊遮罩工具
自動遮罩日誌中的敏感資訊,包括:
- 認證資訊:Authorization, Cookie, API Key
- 密碼欄位:password, secret, token
- 個人資料:信用卡號、身分證字號(可自訂規則)
遮罩規則
- 完全遮罩:將整個值替換為 MASKED
- 部分遮罩:保留前後少數字元,中間遮罩(適用於長字串)
- 正則遮罩:符合特定格式的資料自動遮罩
使用範例
SensitiveDataMasker masker = new SensitiveDataMasker();
// 遮罩標頭
Map<String, String> headers = masker.maskHeaders(originalHeaders);
// Authorization: Bearer token123 → Authorization: Bearer ***MASKED***
// 遮罩 JSON Body
String json = "{\"password\":\"secret123\",\"username\":\"admin\"}";
String masked = masker.maskJson(json);
// {"password":"***MASKED***","username":"admin"}
// 自訂敏感欄位
masker.addSensitiveField("apiKey");
masker.addSensitivePattern(Pattern.compile("\\d{16}")); // 信用卡號
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddSensitiveField(String fieldName) 新增自訂的敏感欄位voidaddSensitiveHeader(String headerName) 新增自訂的敏感標頭voidaddSensitivePattern(Pattern pattern) 新增自訂的敏感資料正則表達式maskHeaders(Map<String, String> headers) 遮罩 HTTP 標頭遮罩 JSON 字串中的敏感欄位遮罩任意文字中的敏感資訊partialMask(String value, int keepPrefix, int keepSuffix) 部分遮罩(保留前後少數字元)
-
Constructor Details
-
SensitiveDataMasker
public SensitiveDataMasker()建立預設的敏感資訊遮罩工具
-
-
Method Details
-
addSensitiveHeader
-
addSensitiveField
-
addSensitivePattern
-
maskHeaders
-
maskJson
-
maskText
-
partialMask
-