Ali Alsuliman has submitted this change and it was merged.

Change subject: [NO ISSUE][OTH] Support log redaction 2
......................................................................


[NO ISSUE][OTH] Support log redaction 2

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Modify ILogRedactor to enable reversing the redaction
- Redact user data in exceptions thrown in the grammar file

Change-Id: If971d0a913e2b7efe521e2d54646568f789937b5
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3125
Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <ti...@apache.org>
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
M 
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
M 
hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
4 files changed, 32 insertions(+), 7 deletions(-)

Approvals:
  Anon. E. Moose #1000171: 
  Till Westmann: Looks good to me, approved
  Jenkins: Verified; No violations found; ; Verified



diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
index 88b5da8..94d63a4 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
@@ -57,6 +57,7 @@
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.exceptions.HyracksException;
 import org.apache.hyracks.control.cc.ClusterControllerService;
+import org.apache.hyracks.util.LogRedactionUtil;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -181,6 +182,6 @@
     @Override
     public String toString() {
         return String.format("%s(id=%s, from=%s): %s", 
getClass().getSimpleName(), requestMessageId, requestNodeId,
-                statementsText);
+                LogRedactionUtil.userData(statementsText));
     }
 }
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 
b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index 45ba7c3..19a4da2 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -184,6 +184,7 @@
 import 
org.apache.hyracks.algebricks.core.algebra.expressions.IndexedNLJoinExpressionAnnotation;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.api.exceptions.SourceLocation;
+import org.apache.hyracks.util.LogRedactionUtil;
 
 class SQLPPParser extends ScopeChecker implements IParser {
 
@@ -400,7 +401,7 @@
     }
 
     private SqlppParseException createUnexpectedTokenError() {
-      return new SqlppParseException(getSourceLocation(token), "Unexpected 
token: " + token.image);
+      return new SqlppParseException(getSourceLocation(token), "Unexpected 
token: " + LogRedactionUtil.userData(token.image));
     }
 
     private boolean laToken(int idx, int kind, String image) {
@@ -2445,7 +2446,7 @@
         try {
             lit.setValue(new LongIntegerLiteral(Long.valueOf(token.image)));
         } catch (NumberFormatException e) {
-            throw new SqlppParseException(getSourceLocation(token), "Could not 
parse numeric literal \"" + token.image +'"');
+            throw new SqlppParseException(getSourceLocation(token), "Could not 
parse numeric literal \"" + LogRedactionUtil.userData(token.image) +'"');
         }
     }
   | <FLOAT_LITERAL>
@@ -2453,7 +2454,7 @@
         try {
             lit.setValue(new FloatLiteral(Float.valueOf(token.image)));
         } catch (NumberFormatException e) {
-            throw new SqlppParseException(getSourceLocation(token), "Could not 
parse numeric literal \"" + token.image +'"');
+            throw new SqlppParseException(getSourceLocation(token), "Could not 
parse numeric literal \"" + LogRedactionUtil.userData(token.image) +'"');
         }
     }
   | <DOUBLE_LITERAL>
@@ -2461,7 +2462,7 @@
         try {
             lit.setValue(new DoubleLiteral(Double.valueOf(token.image)));
         } catch (NumberFormatException e) {
-            throw new SqlppParseException(getSourceLocation(token), "Could not 
parse numeric literal \"" + token.image +'"');
+            throw new SqlppParseException(getSourceLocation(token), "Could not 
parse numeric literal \"" + LogRedactionUtil.userData(token.image) +'"');
         }
     }
   | <MISSING>
diff --git 
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
 
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
index 18e9a34..b133894 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ILogRedactor.java
@@ -22,8 +22,17 @@
 
     /**
      * Redacts user data argument.
+     *
      * @param text user data to redact.
      * @return redacted user data.
      */
     String userData(String text);
+
+    /**
+     * Unredacts user data found in the argument.
+     *
+     * @param text text that contains some redacted user data.
+     * @return the text with user data unredacted.
+     */
+    String unredactUserData(String text);
 }
diff --git 
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
 
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
index 29242be..89c957e 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/LogRedactionUtil.java
@@ -21,8 +21,18 @@
 
 public class LogRedactionUtil {
 
-    private static final ILogRedactor defaultLogRedactor = text -> text;
-    private static ILogRedactor redactor = defaultLogRedactor;
+    private static final ILogRedactor DEFAULT_LOG_REDACTOR = new 
ILogRedactor() {
+        @Override
+        public String userData(String text) {
+            return text;
+        }
+
+        @Override
+        public String unredactUserData(String text) {
+            return text;
+        }
+    };
+    private static ILogRedactor redactor = DEFAULT_LOG_REDACTOR;
 
     private LogRedactionUtil() {
     }
@@ -34,4 +44,8 @@
     public static String userData(String text) {
         return redactor.userData(text);
     }
+
+    public static String unredactUserData(String text) {
+        return redactor.unredactUserData(text);
+    }
 }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/3125
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If971d0a913e2b7efe521e2d54646568f789937b5
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <ali.al.solai...@gmail.com>
Gerrit-Reviewer: Ali Alsuliman <ali.al.solai...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Dmitry Lychagin <dmitry.lycha...@couchbase.com>
Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mhub...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>

Reply via email to