From 82e41b40bb35ed552d35beee67cd226cbbf3321f Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Mon, 12 Feb 2018 16:10:26 -0500 Subject: [PATCH] enforce strings for secret password inputs on Credentials see: https://github.com/ansible/ansible-tower/issues/7898 --- awx/main/fields.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/awx/main/fields.py b/awx/main/fields.py index 56c390aa8d..9e89d65dba 100644 --- a/awx/main/fields.py +++ b/awx/main/fields.py @@ -499,6 +499,12 @@ class CredentialInputField(JSONSchemaField): v != '$encrypted$', model_instance.pk ]): + if not isinstance(getattr(model_instance, k), six.string_types): + raise django_exceptions.ValidationError( + _('secret values must be of type string, not {}').format(type(v).__name__), + code='invalid', + params={'value': v}, + ) decrypted_values[k] = utils.decrypt_field(model_instance, k) else: decrypted_values[k] = v