Benedikt Kaiser created CXF-9141: ------------------------------------ Summary: MaskSensitiveHelperMasking malfunctions for empty tags Key: CXF-9141 URL: https://issues.apache.org/jira/browse/CXF-9141 Project: CXF Issue Type: Bug Affects Versions: 4.1.2 Reporter: Benedikt Kaiser
We encounter a bug where `org.apache.cxf.ext.logging.MaskSensitiveHelper` fails to match text correctly and scrambles up the message. It happens when masking an element that occurs multiple times in the message string. In cases where the first occurance is a self-closing tag e.g. {{<a/>}} and a later occurance contains a value {{<a>value</a>}} the regex will match everything from the first occurence until the second and replace it. This of course leads to a invalid XML with all the data in between missing. For example: <one> <password/> </one> <two> <password>Value</password> </two> is turned into <one> <password/>XXX</password> </two> h4. Proposal I opened a pull request: [https://github.com/apache/cxf/pull/2425] The proposed solution does not match self-closing tags, by adding {{/}} to the list of excluded characters in the opening tag. Ignoring self-closing tags is acceptable as they have no content to mask anyways and this way the regex match does not run into the described issue. -- This message was sent by Atlassian Jira (v8.20.10#820010)