Skip to content

Commit 86b2bf4

Browse files
author
Samin Rahman
committed
Added early exit without doing regex matches for masking pattern layout
1 parent daee856 commit 86b2bf4

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

src/main/java/com/uid2/shared/logback/MaskingPatternLayout.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
import java.util.regex.Pattern;
88

99
public class MaskingPatternLayout extends PatternLayout {
10-
private static final Map<Pattern, String> MASKING_PATTERNS = Map.of(
11-
Pattern.compile("\\S+s3\\.amazonaws\\.com/\\S*X-Amz-Security-Token=\\S+"), "REDACTED - S3"
12-
);
10+
private static final Pattern maskPattern = Pattern.compile("\\S+s3\\.amazonaws\\.com/\\S*X-Amz-Security-Token=\\S+");
11+
private static final String maskBroadCheckSubstring = "X-Amz-Security-Token=";
12+
private static final String maskedRedaction = "REDACTED - S3";
1313

1414
@Override
1515
public String doLayout(ILoggingEvent event) {
@@ -22,11 +22,10 @@ private String mask(String message) {
2222
}
2323

2424
String maskedMessage = message;
25-
for (Map.Entry<Pattern, String> entry : MASKING_PATTERNS.entrySet()) {
26-
Pattern pattern = entry.getKey();
27-
String mask = entry.getValue();
28-
maskedMessage = pattern.matcher(maskedMessage).replaceAll(mask);
25+
if (maskedMessage.contains(maskBroadCheckSubstring)) {
26+
maskedMessage = maskPattern.matcher(maskedMessage).replaceAll(maskedRedaction);
2927
}
28+
3029
return maskedMessage;
3130
}
3231
}

0 commit comments

Comments
 (0)