diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/LuhnMaskingObfuscator.java b/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/LuhnMaskingObfuscator.java
index 8ad5478..faf486f 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/LuhnMaskingObfuscator.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/log/obfuscators/LuhnMaskingObfuscator.java
@@ -17,6 +17,8 @@
package org.killbill.billing.server.log.obfuscators;
+import java.util.regex.Pattern;
+
import ch.qos.logback.classic.spi.ILoggingEvent;
import com.google.common.annotations.VisibleForTesting;
@@ -34,6 +36,8 @@ public class LuhnMaskingObfuscator extends Obfuscator {
*/
private static final int MIN_CC_DIGITS = 13;
+ private static final Pattern UUID_PATTERN = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$");
+
public LuhnMaskingObfuscator() {
super();
}
@@ -44,7 +48,8 @@ public class LuhnMaskingObfuscator extends Obfuscator {
}
private String mask(final String formattedMessage) {
- if (!hasEnoughDigits(formattedMessage)) {
+ if (UUID_PATTERN.matcher(formattedMessage).matches() ||
+ !hasEnoughDigits(formattedMessage)) {
return formattedMessage;
}
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestLuhnMaskingObfuscator.java b/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestLuhnMaskingObfuscator.java
index 29d51ef..2232eab 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestLuhnMaskingObfuscator.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/server/log/obfuscators/TestLuhnMaskingObfuscator.java
@@ -249,6 +249,12 @@ public class TestLuhnMaskingObfuscator extends ServerTestSuiteNoDB {
event);
}
+ @Test(groups = "fast")
+ public void testIgnoreUUIDs() {
+ Assert.assertTrue(obfuscator.luhnCheck("197760025906126"));
+ verify("169fe72a-eba0-11e1-9776-0025906126aa", "169fe72a-eba0-11e1-9776-0025906126aa");
+ }
+
private void verify(final String input, final String output) {
verify(input, output, Mockito.mock(ILoggingEvent.class));
}