From 385682b31aec189c6d82da55987559fbd8add600 Mon Sep 17 00:00:00 2001 From: Bertrand Renuart Date: Thu, 25 Aug 2022 22:19:23 +0200 Subject: [PATCH] Test condition against current context instead of parent --- .../logback/mask/PathBasedFieldMasker.java | 5 ++--- .../MaskingJsonGeneratorDecoratorTest.java | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/net/logstash/logback/mask/PathBasedFieldMasker.java b/src/main/java/net/logstash/logback/mask/PathBasedFieldMasker.java index 2e07cebc..f3aabb14 100644 --- a/src/main/java/net/logstash/logback/mask/PathBasedFieldMasker.java +++ b/src/main/java/net/logstash/logback/mask/PathBasedFieldMasker.java @@ -115,7 +115,7 @@ * *

Wildcard Tokens

* - * The wildcard value ({@value WILDCARD_TOKEN}) can be used as a token in the path string. + * The wildcard value ({@value #WILDCARD_TOKEN}) can be used as a token in the path string. * The wildcard token will match any token. * *

For example, given the following JSON: @@ -203,8 +203,7 @@ public Object mask(JsonStreamContext context) { return null; } } - - return (currentContext != null && (!isAbsolutePath || currentContext.getParent() == null || currentContext.getParent().inRoot())) + return (currentContext != null && (!isAbsolutePath || currentContext.inRoot())) ? mask : null; } diff --git a/src/test/java/net/logstash/logback/mask/MaskingJsonGeneratorDecoratorTest.java b/src/test/java/net/logstash/logback/mask/MaskingJsonGeneratorDecoratorTest.java index 493ea55f..0a710282 100644 --- a/src/test/java/net/logstash/logback/mask/MaskingJsonGeneratorDecoratorTest.java +++ b/src/test/java/net/logstash/logback/mask/MaskingJsonGeneratorDecoratorTest.java @@ -229,21 +229,26 @@ public void maskedSubObject() throws IOException { @Test public void subObjectWithMaskedField() throws IOException { testMaskByPath( - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"}}", - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"}}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"},\"fieldAB\":\"****\"}", "fieldAB"); testMaskByPath( - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"}}", - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"}}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"},\"fieldAB\":\"****\"}", + "/fieldAB"); + testMaskByPath( + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", "fieldA/fieldAB"); testMaskByPath( - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"}}", - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"}}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", "/fieldA/fieldAB"); testMaskByPath( - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"}}", - "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"}}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", + "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":\"****\",\"fieldAC\":\"valueAC\"},\"fieldAB\":0}", "/*/fieldAB"); + testMaskByPath( "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"}}", "{\"fieldA\":{\"fieldAA\":\"valueAA\",\"fieldAB\":12345678,\"fieldAC\":\"valueAC\"}}",