Преглед на файлове

Sanitized result backend URI in banner, reports and inspect conf.

Depends on celery/kombu@f4ef17236e0085b0d948162cfbaa6d42935e2dca
+ celery/kombu@66419eb780c8392286212c7a73c525277b10c970

Closes #2004
Ask Solem преди 11 години
родител
ревизия
41c7307da4
променени са 2 файла, в които са добавени 10 реда и са изтрити 2 реда
  1. 6 1
      celery/app/utils.py
  2. 4 1
      celery/apps/worker.py

+ 6 - 1
celery/app/utils.py

@@ -15,6 +15,8 @@ import re
 from collections import Mapping
 from types import ModuleType
 
+from kombu.utils.url import maybe_sanitize_url
+
 from celery.datastructures import ConfigurationView
 from celery.five import items, string_t, values
 from celery.platforms import pyimplementation
@@ -177,9 +179,12 @@ def filter_hidden_settings(conf):
         if isinstance(key, string_t):
             if HIDDEN_SETTINGS.search(key):
                 return mask
-            if 'BROKER_URL' in key.upper():
+            elif 'BROKER_URL' in key.upper():
                 from kombu import Connection
                 return Connection(value).as_uri(mask=mask)
+            elif key.upper() in ('CELERY_RESULT_BACKEND', 'CELERY_BACKEND'):
+                return maybe_sanitize_url(value, mask=mask)
+
         return value
 
     return {k: maybe_censor(k, v) for k, v in items(conf)}

+ 4 - 1
celery/apps/worker.py

@@ -22,6 +22,7 @@ from functools import partial
 
 from billiard import current_process
 from kombu.utils.encoding import safe_str
+from kombu.utils.url import maybe_sanitize_url
 
 from celery import VERSION_BANNER, platforms, signals
 from celery.app import trace
@@ -227,7 +228,9 @@ class Worker(WorkController):
             hostname=safe_str(self.hostname),
             version=VERSION_BANNER,
             conninfo=self.app.connection().as_uri(),
-            results=self.app.conf.CELERY_RESULT_BACKEND or 'disabled',
+            results=maybe_sanitize_url(
+                self.app.conf.CELERY_RESULT_BACKEND or 'disabled',
+            ),
             concurrency=concurrency,
             platform=safe_str(_platform.platform()),
             events=events,