killbill-aplcache

obfuscators: don't obfuscate UUIDs Signed-off-by: Pierre-Alexandre

4/12/2018 10:44:08 AM

Details

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));
     }