diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2020-02-29 02:13:49 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2020-02-29 02:13:49 +0300 |
| commit | b06a0724846483a3fdc6d8e9ca02ab908ab5eece (patch) | |
| tree | 3fbf0c03d359f1ef3606ac9c7c9f26fead581af7 | |
| parent | 3653d237f5dff7603c4f578bbb5a6ddbc919b786 (diff) | |
| download | rabbitmq-server-git-b06a0724846483a3fdc6d8e9ca02ab908ab5eece.tar.gz | |
min length validator: handle passwordless users gracefully
| -rw-r--r-- | src/rabbit_credential_validator_min_password_length.erl | 3 | ||||
| -rw-r--r-- | test/credential_validation_SUITE.erl | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/rabbit_credential_validator_min_password_length.erl b/src/rabbit_credential_validator_min_password_length.erl index 24a0dec930..c93f5a3ae1 100644 --- a/src/rabbit_credential_validator_min_password_length.erl +++ b/src/rabbit_credential_validator_min_password_length.erl @@ -49,6 +49,9 @@ validate(Username, Password) -> -spec validate(rabbit_types:username(), rabbit_types:password(), integer()) -> 'ok' | {'error', string(), [any()]}. +%% passwordless users +validate(_Username, undefined, MinLength) -> + {error, rabbit_misc:format("minimum required password length is ~B", [MinLength])}; validate(_Username, Password, MinLength) -> case size(Password) >= MinLength of true -> ok; diff --git a/test/credential_validation_SUITE.erl b/test/credential_validation_SUITE.erl index 791eb72630..324d523797 100644 --- a/test/credential_validation_SUITE.erl +++ b/test/credential_validation_SUITE.erl @@ -125,7 +125,11 @@ min_length_fails(_Config) -> Pwd3 = crypto:strong_rand_bytes(10), ?assertMatch({error, _}, F(?USERNAME, Pwd3, 15)), Pwd4 = crypto:strong_rand_bytes(50), - ?assertMatch({error, _}, F(?USERNAME, Pwd4, 60)). + ?assertMatch({error, _}, F(?USERNAME, Pwd4, 60)), + Pwd5 = undefined, + ?assertMatch({error, _}, F(?USERNAME, Pwd5, 60)), + Pwd6 = <<"">>, + ?assertMatch({error, _}, F(?USERNAME, Pwd6, 60)). min_length_succeeds(_Config) -> F = fun rabbit_credential_validator_min_password_length:validate/3, |
