You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/09/09 06:29:29 UTC
[camel] branch main updated: Change DefaultMaskingFormatter to
preserve quotes in keyValue data (#6061)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new c0ce500 Change DefaultMaskingFormatter to preserve quotes in keyValue data (#6061)
c0ce500 is described below
commit c0ce500254a9f86d37888c888c5f3da9c8a08c96
Author: Christoph Deppisch <cd...@redhat.com>
AuthorDate: Thu Sep 9 08:29:05 2021 +0200
Change DefaultMaskingFormatter to preserve quotes in keyValue data (#6061)
Log masking formatter preserves the quotes used in the source data when masking keyValue pairs. Supported are no quotes, single quotes and normal quotes.
---
.../camel/support/processor/DefaultMaskingFormatterTest.java | 12 ++++++------
.../camel/support/processor/DefaultMaskingFormatter.java | 8 ++++----
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/processor/DefaultMaskingFormatterTest.java b/core/camel-core/src/test/java/org/apache/camel/support/processor/DefaultMaskingFormatterTest.java
index fe51812..7041572 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/processor/DefaultMaskingFormatterTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/processor/DefaultMaskingFormatterTest.java
@@ -27,7 +27,7 @@ public class DefaultMaskingFormatterTest {
DefaultMaskingFormatter formatter = new DefaultMaskingFormatter();
String answer
= formatter.format("key=value, myPassword=foo,\n myPassphrase=\"foo bar\", secretKey='!@#$%^&*() -+[]{};:'");
- assertEquals("key=value, myPassword=\"xxxxx\",\n myPassphrase=\"xxxxx\", secretKey=\"xxxxx\"", answer);
+ assertEquals("key=value, myPassword=xxxxx,\n myPassphrase=\"xxxxx\", secretKey='xxxxx'", answer);
answer = formatter.format("<xmlPassword>\n foo bar \n</xmlPassword>\n<user password=\"asdf qwert\"/>");
assertEquals("<xmlPassword>\n xxxxx \n</xmlPassword>\n<user password=\"xxxxx\"/>", answer);
@@ -61,7 +61,7 @@ public class DefaultMaskingFormatterTest {
DefaultMaskingFormatter formatter = new DefaultMaskingFormatter(true, false, true);
String answer
= formatter.format("key=value, myPassword=foo,\n myPassphrase=\"foo bar\", secretKey='!@#$%^&*() -+[]{};:'");
- assertEquals("key=value, myPassword=\"xxxxx\",\n myPassphrase=\"xxxxx\", secretKey=\"xxxxx\"", answer);
+ assertEquals("key=value, myPassword=xxxxx,\n myPassphrase=\"xxxxx\", secretKey='xxxxx'", answer);
answer = formatter.format("<xmlPassword>\n foo bar \n</xmlPassword>\n<user password=\"asdf qwert\"/>");
assertEquals("<xmlPassword>\n foo bar \n</xmlPassword>\n<user password=\"xxxxx\"/>", answer);
@@ -78,7 +78,7 @@ public class DefaultMaskingFormatterTest {
DefaultMaskingFormatter formatter = new DefaultMaskingFormatter(true, true, false);
String answer
= formatter.format("key=value, myPassword=foo,\n myPassphrase=\"foo bar\", secretKey='!@#$%^&*() -+[]{};:'");
- assertEquals("key=value, myPassword=\"xxxxx\",\n myPassphrase=\"xxxxx\", secretKey=\"xxxxx\"", answer);
+ assertEquals("key=value, myPassword=xxxxx,\n myPassphrase=\"xxxxx\", secretKey='xxxxx'", answer);
answer = formatter.format("<xmlPassword>\n foo bar \n</xmlPassword>\n<user password=\"asdf qwert\"/>");
assertEquals("<xmlPassword>\n xxxxx \n</xmlPassword>\n<user password=\"xxxxx\"/>", answer);
@@ -96,7 +96,7 @@ public class DefaultMaskingFormatterTest {
formatter.setMaskString("**********");
String answer
= formatter.format("key=value, myPassword=foo,\n myPassphrase=\"foo bar\", secretKey='!@#$%^&*() -+[]{};:'");
- assertEquals("key=value, myPassword=\"**********\",\n myPassphrase=\"**********\", secretKey=\"**********\"", answer);
+ assertEquals("key=value, myPassword=**********,\n myPassphrase=\"**********\", secretKey='**********'", answer);
answer = formatter.format("<xmlPassword>\n foo bar \n</xmlPassword>\n<user password=\"asdf qwert\"/>");
assertEquals("<xmlPassword>\n ********** \n</xmlPassword>\n<user password=\"**********\"/>", answer);
@@ -113,7 +113,7 @@ public class DefaultMaskingFormatterTest {
DefaultMaskingFormatter formatter = new DefaultMaskingFormatter();
String answer
= formatter.format("key=value, myAccessKey=foo,\n authkey=\"foo bar\", refreshtoken='!@#$%^&*() -+[]{};:'");
- assertEquals("key=value, myAccessKey=\"xxxxx\",\n authkey=\"xxxxx\", refreshtoken=\"xxxxx\"", answer);
+ assertEquals("key=value, myAccessKey=xxxxx,\n authkey=\"xxxxx\", refreshtoken='xxxxx'", answer);
answer = formatter.format("<subscribeKey>\n foo bar \n</subscribeKey>\n<user verificationCode=\"asdf qwert\"/>");
assertEquals("<subscribeKey>\n xxxxx \n</subscribeKey>\n<user verificationCode=\"xxxxx\"/>", answer);
@@ -134,7 +134,7 @@ public class DefaultMaskingFormatterTest {
= formatter.format(
"key=value, Cheese=gauda, myPassword=foo,\n myPassphrase=\"foo bar\", secretKey='!@#$%^&*() -+[]{};:'");
assertEquals(
- "key=value, Cheese=\"**********\", myPassword=\"**********\",\n myPassphrase=\"**********\", secretKey=\"**********\"",
+ "key=value, Cheese=**********, myPassword=**********,\n myPassphrase=\"**********\", secretKey='**********'",
answer);
answer = formatter
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultMaskingFormatter.java b/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultMaskingFormatter.java
index d1de9bc..bd28f16 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultMaskingFormatter.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/processor/DefaultMaskingFormatter.java
@@ -36,7 +36,7 @@ public class DefaultMaskingFormatter implements MaskingFormatter {
private static final Logger LOG = LoggerFactory.getLogger(DefaultMaskingFormatter.class);
- private Set<String> keywords;
+ private final Set<String> keywords;
private boolean maskKeyValue;
private boolean maskXmlElement;
private boolean maskJson;
@@ -109,13 +109,13 @@ public class DefaultMaskingFormatter implements MaskingFormatter {
answer = xmlElementMaskPattern.matcher(answer).replaceAll("$1" + maskString + "$3");
if (maskKeyValue) {
// used for the attributes in the XML tags
- answer = keyValueMaskPattern.matcher(answer).replaceAll("$1\"" + maskString + "\"");
+ answer = keyValueMaskPattern.matcher(answer).replaceAll("$1" + maskString);
}
} else if (json) {
answer = jsonMaskPattern.matcher(answer).replaceAll("\"$1\"$2:$3\"" + maskString + "\"");
} else if (maskKeyValue) {
// key=value paris
- answer = keyValueMaskPattern.matcher(answer).replaceAll("$1\"" + maskString + "\"");
+ answer = keyValueMaskPattern.matcher(answer).replaceAll("$1" + maskString);
}
return answer;
@@ -169,7 +169,7 @@ public class DefaultMaskingFormatter implements MaskingFormatter {
return null;
}
regex.insert(0, "([\\w]*(?:");
- regex.append(")[\\w]*[\\s]*?=[\\s]*?)([\\S&&[^'\",\\}\\]\\)]]+[\\S&&[^,\\}\\]\\)>]]*?|\"[^\"]*?\"|'[^']*?')");
+ regex.append(")[\\w]*[\\s]*?=[\\s]*?['\"]?)([^'\",]+)");
if (LOG.isDebugEnabled()) {
LOG.debug("KeyValue Pattern: {}", regex);