From 809d9cb80f5f4471f125823888f37875aa37809e Mon Sep 17 00:00:00 2001 From: Antonio Torres Moríñigo Date: Dec 18 2020 14:47:59 +0000 Subject: Allow leading/trailing whitespaces in passwords kwargs is redefined to set the `noextrawhitespace` parameter from the Str class to `False`. Fixes: https://pagure.io/freeipa/issue/7599 Signed-off-by: Antonio Torres Moríñigo Reviewed-By: Alexander Bokovoy Reviewed-By: Rob Crittenden --- diff --git a/ipalib/parameters.py b/ipalib/parameters.py index f06e1af..22c82f6 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -1646,6 +1646,11 @@ class Password(Str): A parameter for passwords (stored in the ``unicode`` type). """ + kwargs = Data.kwargs + ( + ('pattern', (str,), None), + ('noextrawhitespace', bool, False), + ) + password = True def _convert_scalar(self, value, index=None): diff --git a/ipaserver/plugins/host.py b/ipaserver/plugins/host.py index 766d232..5479021 100644 --- a/ipaserver/plugins/host.py +++ b/ipaserver/plugins/host.py @@ -27,7 +27,7 @@ import six from ipalib import api, errors, util from ipalib import messages from ipalib import Str, StrEnum, Flag -from ipalib.parameters import Principal, Certificate +from ipalib.parameters import Data, Principal, Certificate from ipalib.plugable import Registry from .baseldap import (LDAPQuery, LDAPObject, LDAPCreate, LDAPDelete, LDAPUpdate, LDAPSearch, @@ -260,6 +260,12 @@ class HostPassword(Str): setting a password on the command-line which would break backwards compatibility. """ + + kwargs = Data.kwargs + ( + ('pattern', (str,), None), + ('noextrawhitespace', bool, False), + ) + def safe_value(self, value): return u'********'