huangzhir commented on code in PR #4643:
URL: https://github.com/apache/kyuubi/pull/4643#discussion_r1156862619


##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/ranger/SparkRangerAdminPlugin.scala:
##########
@@ -131,12 +125,28 @@ object SparkRangerAdminPlugin extends 
RangerBasePlugin("spark", "sparkSql")
     }
   }
 
-  private def regexp_replace(expr: String, hasLen: Boolean = false): String = {
+  // public for test

Review Comment:
   Thank you for your feedback. I have made the changes you suggested. Please 
let me know if there is anything else I can do to improve this PR.



##########
extensions/spark/kyuubi-spark-authz/src/main/scala/org/apache/kyuubi/plugin/spark/authz/ranger/SparkRangerAdminPlugin.scala:
##########
@@ -131,12 +125,28 @@ object SparkRangerAdminPlugin extends 
RangerBasePlugin("spark", "sparkSql")
     }
   }
 
-  private def regexp_replace(expr: String, hasLen: Boolean = false): String = {
+  // public for test
+  def regexp_replace(expr: String, hasLen: Boolean = false): String = {
     val pos = if (hasLen) ", 5" else ""
     val upper = s"regexp_replace($expr, '[A-Z]', 'X'$pos)"
     val lower = s"regexp_replace($upper, '[a-z]', 'x'$pos)"
     val digits = s"regexp_replace($lower, '[0-9]', 'n'$pos)"
-    digits
+    val other = s"regexp_replace($digits, '[^A-Za-z0-9 ]', 'U'$pos)"
+    other
+  }
+
+  def maskShowFirst4(col: String, isSparkV31OrGreater: Boolean): String = {
+    if (isSparkV31OrGreater) {
+      regexp_replace(col, hasLen = true)
+    } else {
+      val right = regexp_replace(s"substr($col, 5)")
+      s"concat(substr($col, 0, 4), $right)"
+    }
+  }
+
+  def maskShowLast4(col: String): String = {
+    val left = regexp_replace(s"left($col, length($col) - 4)")
+    s"concat($left, right($col, 4))"

Review Comment:
   Thank you for your feedback. I have made the changes you suggested. Please 
let me know if there is anything else I can do to improve this PR.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to