瀏覽代碼

HUE-5722 [core] Avoid query redaction when string is None

krish 8 年之前
父節點
當前提交
f315761184
共有 2 個文件被更改,包括 10 次插入2 次删除
  1. 2 2
      desktop/core/src/desktop/redaction/engine.py
  2. 8 0
      desktop/core/src/desktop/redaction/tests.py

+ 2 - 2
desktop/core/src/desktop/redaction/engine.py

@@ -34,7 +34,7 @@ class RedactionEngine(object):
     self.policies.append(policy)
 
   def add_policy_from_file(self, filename):
-    self.policies.append(parse_redaction_policy_from_filename(filename))
+    self.policies.append(parse_redaction_policy_from_file(filename))
 
   def redact(self, message):
     """
@@ -104,7 +104,7 @@ class RedactionRule(object):
     `trigger` string then it will return the original string unmodified.
     """
 
-    if self.trigger is None or self.trigger.search(message):
+    if message and (self.trigger is None or self.trigger.search(message)):
       return self.regex.sub(self.replace, message)
     else:
       return message

+ 8 - 0
desktop/core/src/desktop/redaction/tests.py

@@ -138,6 +138,14 @@ class TestRedactionEngine(object):
     assert_equal(engine1, engine2)
     assert_not_equal(engine1, engine3)
 
+  def test_redact_empty_string(self):
+    engine = RedactionEngine([
+        RedactionRule('password=', 'password=".*"', 'password="???"'),
+    ])
+
+    assert_equal(engine.redact(None), None)
+    assert_equal(engine.redact(''), '')
+
 
 class TestRedactionLogFilter(object):