This is an automated email from the ASF dual-hosted git repository. reta pushed a commit to branch 4.0.x-fixes in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 417b66e33604ef9cf36aceca778c06d919499d47 Author: Benedikt Kaiser <[email protected]> AuthorDate: Fri May 30 23:04:57 2025 +0200 CXF-9141: Masking fails when empty tag is repeated with content later on (#2425) * Add test displaying the failing masking on repeated tags * Exclude self-closing tags from match * remove comma * rename to fix checkstyle errors. --------- Co-authored-by: Benedikt Kaiser <[email protected]> (cherry picked from commit e9d050f299233fd71416ee65849651650c820893) --- .../main/java/org/apache/cxf/ext/logging/MaskSensitiveHelper.java | 2 +- .../java/org/apache/cxf/ext/logging/MaskSensitiveHelperTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 6d96e1bce3..22957887be 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 @@ -32,7 +32,7 @@ public class MaskSensitiveHelper { + "\\u00F8-\\u02FF\\u0300-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F" + "\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]+"; private static final String MATCH_PATTERN_XML_TEMPLATE = "(<(" + PATTERN_XML_NAMESPACE_PREFIX - + ":)?-ELEMENT_NAME-\\b[^>]*>)(.*?)(</(" + PATTERN_XML_NAMESPACE_PREFIX + ":)?-ELEMENT_NAME->)"; + + ":)?-ELEMENT_NAME-\\b[^>/]*>)(.*?)(</(" + PATTERN_XML_NAMESPACE_PREFIX + ":)?-ELEMENT_NAME->)"; private static final String REPLACEMENT_XML_TEMPLATE = "$1XXX$4"; private static final String MATCH_PATTERN_JSON_TEMPLATE = "\"-ELEMENT_NAME-\"[ \\t]*:[ \\t]*\"(.*?)\""; private static final String REPLACEMENT_JSON_TEMPLATE = "\"-ELEMENT_NAME-\": \"XXX\""; diff --git a/rt/features/logging/src/test/java/org/apache/cxf/ext/logging/MaskSensitiveHelperTest.java b/rt/features/logging/src/test/java/org/apache/cxf/ext/logging/MaskSensitiveHelperTest.java index 44a98568ef..471a78a9ff 100644 --- a/rt/features/logging/src/test/java/org/apache/cxf/ext/logging/MaskSensitiveHelperTest.java +++ b/rt/features/logging/src/test/java/org/apache/cxf/ext/logging/MaskSensitiveHelperTest.java @@ -66,6 +66,11 @@ public class MaskSensitiveHelperTest { private static final String MASKED_LOGGING_CONTENT_XML_WITH_WITH_WRAPPER = "<passwords><password>XXX</password></passwords>"; + private static final String SENSITIVE_LOGGING_XML_EMPTY_TAG_REPEATED = + "<user1><password/></user1><user2><password>VALUE</password></user2>"; + private static final String MASKED_LOGGING_XML_EMPTY_TAG_REPEATED = + "<user1><password/></user1><user2><password>XXX</password></user2>"; + private static final String SENSITIVE_LOGGING_CONTENT_JSON = "\"user\":\"testUser\", \"password\": \"my secret password\""; private static final String MASKED_LOGGING_CONTENT_JSON = @@ -105,6 +110,7 @@ public class MaskSensitiveHelperTest { {SENSITIVE_LOGGING_CONTENT_XML_WITH_ATTRIBUTE, MASKED_LOGGING_CONTENT_XML_WITH_ATTRIBUTE, APPLICATION_XML}, {SENSITIVE_LOGGING_CONTENT_XML_WITH_MULTILINE, MASKED_LOGGING_CONTENT_XML_WITH_MULTILINE, APPLICATION_XML}, {SENSITIVE_LOGGING_CONTENT_XML_WITH_WRAPPER, MASKED_LOGGING_CONTENT_XML_WITH_WITH_WRAPPER, APPLICATION_XML}, + {SENSITIVE_LOGGING_XML_EMPTY_TAG_REPEATED, MASKED_LOGGING_XML_EMPTY_TAG_REPEATED, APPLICATION_XML}, {SENSITIVE_LOGGING_MULTIPLE_ELEMENT_XML, MASKED_LOGGING_MULTIPLE_ELEMENT_XML, APPLICATION_XML}, {SENSITIVE_LOGGING_CONTENT_XML_WITH_NAMESPACE, MASKED_LOGGING_CONTENT_XML_WITH_NAMESPACE, APPLICATION_XML}, {SENSITIVE_LOGGING_CONTENT_JSON, MASKED_LOGGING_CONTENT_JSON, APPLICATION_JSON}
