This is an automated email from the ASF dual-hosted git repository.
ashakirin pushed a commit to branch
feature/CXF-8099_mask_sensitive_logging_elements
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to
refs/heads/feature/CXF-8099_mask_sensitive_logging_elements by this push:
new 132a28c CXF-8099: improved null check
132a28c is described below
commit 132a28c581dae7866c6e800d586d8b5d7fabff2c
Author: ashakirin <[email protected]>
AuthorDate: Fri Jul 17 00:40:36 2020 +0200
CXF-8099: improved null check
---
.../cxf/ext/logging/MaskSensitiveHelper.java | 35 ++++++++--------------
1 file changed, 13 insertions(+), 22 deletions(-)
diff --git
a/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/MaskSensitiveHelper.java
b/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/MaskSensitiveHelper.java
index bf13883..78a6d39 100644
---
a/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/MaskSensitiveHelper.java
+++
b/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/MaskSensitiveHelper.java
@@ -19,23 +19,22 @@
package org.apache.cxf.ext.logging;
import java.util.HashSet;
-import java.util.Optional;
import java.util.Set;
import org.apache.cxf.message.Message;
public class MaskSensitiveHelper {
private static final String ELEMENT_NAME_TEMPLATE = "-ELEMENT_NAME-";
- private static final String MATCH_PATTERN_XML =
"<-ELEMENT_NAME->(.*?)</-ELEMENT_NAME->";
- private static final String MATCH_PATTERN_JSON = "\"-ELEMENT_NAME-\"[
\\t]*:[ \\t]*\"(.*?)\"";
- private static final String REPLACEMENT_PATTERN_XML =
"<-ELEMENT_NAME->XXX</-ELEMENT_NAME->";
- private static final String REPLACEMENT_PATTERN_JSON =
"\"-ELEMENT_NAME-\": \"XXX\"";
+ private static final String MATCH_PATTERN_XML_TEMPLATE =
"<-ELEMENT_NAME->(.*?)</-ELEMENT_NAME->";
+ private static final String MATCH_PATTERN_JSON_TEMPLATE =
"\"-ELEMENT_NAME-\"[ \\t]*:[ \\t]*\"(.*?)\"";
+ private static final String REPLACEMENT_PATTERN_XML_TEMPLATE =
"<-ELEMENT_NAME->XXX</-ELEMENT_NAME->";
+ private static final String REPLACEMENT_PATTERN_JSON_TEMPLATE =
"\"-ELEMENT_NAME-\": \"XXX\"";
private static final String XML_CONTENT = "xml";
private static final String HTML_CONTENT = "html";
private static final String JSON_CONTENT = "json";
- final Set<String> sensitiveElementNames = new HashSet<>();
+ private final Set<String> sensitiveElementNames = new HashSet<>();
public void addSensitiveElementNames(final Set<String>
inSensitiveElementNames) {
this.sensitiveElementNames.addAll(inSensitiveElementNames);
@@ -44,34 +43,26 @@ public class MaskSensitiveHelper {
public String maskSensitiveElements(
final Message message,
final String originalLogString) {
- if (sensitiveElementNames.isEmpty() || message == null) {
+ if (sensitiveElementNames.isEmpty()
+ || message == null
+ || (originalLogString == null)) {
return originalLogString;
}
final String contentType = (String) message.get(Message.CONTENT_TYPE);
if (contentType.toLowerCase().contains(XML_CONTENT)
|| contentType.toLowerCase().contains(HTML_CONTENT)) {
- return applyMasks(originalLogString, MATCH_PATTERN_XML,
REPLACEMENT_PATTERN_XML);
+ return applyMasks(originalLogString, MATCH_PATTERN_XML_TEMPLATE,
REPLACEMENT_PATTERN_XML_TEMPLATE);
} else if (contentType.toLowerCase().contains(JSON_CONTENT)) {
- return applyMasks(originalLogString, MATCH_PATTERN_JSON,
REPLACEMENT_PATTERN_JSON);
+ return applyMasks(originalLogString, MATCH_PATTERN_JSON_TEMPLATE,
REPLACEMENT_PATTERN_JSON_TEMPLATE);
}
return originalLogString;
}
private String applyMasks(String originalLogString, String
matchElementPattern, String replacementElementPattern) {
- return Optional.ofNullable(originalLogString)
- .map(s -> applyExpression(s, matchElementPattern,
replacementElementPattern, sensitiveElementNames))
- .orElse(originalLogString);
- }
-
- private String applyExpression(
- final String originalLogString,
- final String matchPatternTemplate,
- final String replacementTemplate,
- final Set<String> sensitiveNames) {
String resultString = originalLogString;
- for (final String sensitiveName : sensitiveNames) {
- final String matchPattern =
matchPatternTemplate.replaceAll(ELEMENT_NAME_TEMPLATE, sensitiveName);
- final String replacement =
replacementTemplate.replaceAll(ELEMENT_NAME_TEMPLATE, sensitiveName);
+ for (final String sensitiveName : sensitiveElementNames) {
+ final String matchPattern =
matchElementPattern.replaceAll(ELEMENT_NAME_TEMPLATE, sensitiveName);
+ final String replacement =
replacementElementPattern.replaceAll(ELEMENT_NAME_TEMPLATE, sensitiveName);
resultString = resultString.replaceAll(matchPattern, replacement);
}
return resultString;