From 41da5ba5b501597586a983f2ef40089de38e7eed Mon Sep 17 00:00:00 2001 From: Waqas Hussain Date: Sat, 17 Jul 2010 19:34:06 +0500 Subject: mod_auth_internal_hashed: Fixed SCRAM-SHA-1 mechanism to not traceback on non-existent users. --- plugins/mod_auth_internal_hashed.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'plugins/mod_auth_internal_hashed.lua') diff --git a/plugins/mod_auth_internal_hashed.lua b/plugins/mod_auth_internal_hashed.lua index 692bd9f7..c9b8107b 100644 --- a/plugins/mod_auth_internal_hashed.lua +++ b/plugins/mod_auth_internal_hashed.lua @@ -144,10 +144,12 @@ function new_hashpass_provider(host) return usermanager.test_password(prepped_username, password, realm), true; end, scram_sha_1 = function(username, realm) - local credentials = datamanager.load(username, host, "accounts") or {}; + local credentials = datamanager.load(username, host, "accounts"); + if not credentials then return; end if credentials.password then usermanager.set_password(username, credentials.password, host); - credentials = datamanager.load(username, host, "accounts") or {}; + credentials = datamanager.load(username, host, "accounts"); + if not credentials then return; end end -- convert hexpass to stored_key and server_key @@ -159,7 +161,7 @@ function new_hashpass_provider(host) credentials.hashpass = nil datamanager.store(username, host, "accounts", credentials); end - + local stored_key, server_key, iteration_count, salt = credentials.stored_key, credentials.server_key, credentials.iteration_count, credentials.salt; stored_key = stored_key and from_hex(stored_key); server_key = server_key and from_hex(server_key); -- cgit v1.2.3