diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/PatternObfuscator.java b/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/PatternObfuscator.java
index f9a38a5..dfe216d 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/PatternObfuscator.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/PatternObfuscator.java
@@ -72,7 +72,7 @@ public class PatternObfuscator extends Obfuscator {
}
private Pattern buildXMLPattern(final String key) {
- return Pattern.compile(key + ">([^<\\n]+)", DEFAULT_PATTERN_FLAGS);
+ return Pattern.compile(key + ">([^<\\n]+)</[^<>]*" + key + ">", DEFAULT_PATTERN_FLAGS);
}
private Pattern buildMultiValuesXMLPattern(final String key) {
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestPatternObfuscator.java b/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestPatternObfuscator.java
index 6147466..f2c1fd6 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestPatternObfuscator.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestPatternObfuscator.java
@@ -257,6 +257,12 @@ public class TestPatternObfuscator extends ServerTestSuiteNoDB {
);
}
+ @Test(groups = "fast", description = "Test for ActiveMerchant wiredump_device logging")
+ public void testWithQuotedNewLines() throws Exception {
+ verify("[cybersource-plugin] \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?><accountNumber>4111111111111111</accountNumber>\\n <expirationMonth>09</expirationMonth>\\n \"",
+ "[cybersource-plugin] \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?><accountNumber>*****MASKED*****</accountNumber>\\n <expirationMonth>09</expirationMonth>\\n \"");
+ }
+
private void verify(final String input, final String output) {
final String obfuscated = obfuscator.obfuscate(input);
Assert.assertEquals(obfuscated, output, obfuscated);