From 77625483bb2a3c2d312788ffbc910b61256a1059 Mon Sep 17 00:00:00 2001 From: Chris Meyers Date: Fri, 30 Jan 2015 11:08:43 -0500 Subject: [PATCH] calls to redaction mechanism placed in correct places * access to _raw stdout methods/variables remains raw * wrapped _raw access in redaction where needed --- awx/api/views.py | 3 +-- awx/main/models/unified_jobs.py | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/awx/api/views.py b/awx/api/views.py index f4963d2be8..7a008de781 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -2238,7 +2238,6 @@ class UnifiedJobStdout(RetrieveAPIView): conv = Ansi2HTMLConverter(scheme=scheme, dark_bg=dark_bg, title=get_view_name(self.__class__)) content, start, end, absolute_end = unified_job.result_stdout_raw_limited(start_line, end_line) - content = UriCleaner.remove_sensitive(content) if content_only: headers = conv.produce_headers() body = conv.convert(content, full=False) # Escapes any HTML that may be in content. @@ -2255,7 +2254,7 @@ class UnifiedJobStdout(RetrieveAPIView): return Response({'range': {'start': start, 'end': end, 'absolute_end': absolute_end}, 'content': body}) return Response(data) elif request.accepted_renderer.format == 'ansi': - return Response(unified_job.result_stdout_raw) + return Response(UriCleaner.remove_sensitive(unified_job.result_stdout_raw)) else: return super(UnifiedJobStdout, self).retrieve(request, *args, **kwargs) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index dfc51cbec4..643b7ca29c 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -34,6 +34,7 @@ from djcelery.models import TaskMeta from awx.main.models.base import * from awx.main.models.schedules import Schedule from awx.main.utils import decrypt_field, get_type_for_model, emit_websocket_notification, _inventory_updates +from awx.main.redact import UriCleaner __all__ = ['UnifiedJobTemplate', 'UnifiedJob'] @@ -618,7 +619,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique @property def result_stdout(self): ansi_escape = re.compile(r'\x1b[^m]*m') - return ansi_escape.sub('', self.result_stdout_raw) + return ansi_escape.sub('', UriCleaner.remove_sensitive(self.result_stdout_raw)) def result_stdout_raw_limited(self, start_line=0, end_line=None): return_buffer = u"" @@ -641,7 +642,7 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique def result_stdout_limited(self, start_line=0, end_line=None): ansi_escape = re.compile(r'\x1b[^m]*m') - content, start, end, absolute_end = self.result_stdout_raw_limited(start_line, end_line) + content, start, end, absolute_end = UriCleaner.remove_sensitive(self.result_stdout_raw_limited(start_line, end_line)) return ansi_escape.sub('', content), start, end, absolute_end @property