From bb5136cdae289c352bafd9fb1e8775d313cb5e79 Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Thu, 9 Apr 2020 15:21:02 -0400 Subject: [PATCH] properly escape URL paths and querystrings for paths in logging settings --- awx/main/utils/external_logging.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/awx/main/utils/external_logging.py b/awx/main/utils/external_logging.py index 11ea0cf53f..4f9d53b5f4 100644 --- a/awx/main/utils/external_logging.py +++ b/awx/main/utils/external_logging.py @@ -53,7 +53,10 @@ def construct_rsyslog_conf_template(settings=settings): 'healthchecktimeout="20000"', ] if parsed.path: - params.append(f'restpath="{parsed.path[1:]}"') + path = urlparse.quote(parsed.path[1:]) + if parsed.query: + path = f'{path}?{urlparse.quote(parsed.query)}' + params.append(f'restpath="{path}"') username = getattr(settings, 'LOG_AGGREGATOR_USERNAME', '') password = getattr(settings, 'LOG_AGGREGATOR_PASSWORD', '') if username: