Comparison

plugins/mod_auth_internal_hashed.lua @ 10219:d58925bb74ca

mod_auth_internal_hashed: Precompute SCRAM authentication profile name (thanks MattJ)
author Kim Alvefur <zash@zash.se>
date Thu, 22 Aug 2019 01:00:31 +0200
parent 10218:e458578ddfd3
child 10563:e8db377a2983
comparison
equal deleted inserted replaced
10218:e458578ddfd3 10219:d58925bb74ca
21 21
22 local accounts = module:open_store("accounts"); 22 local accounts = module:open_store("accounts");
23 23
24 local hash_name = module:get_option_string("password_hash", "SHA-1"); 24 local hash_name = module:get_option_string("password_hash", "SHA-1");
25 local get_auth_db = assert(scram_hashers[hash_name], "SCRAM-"..hash_name.." not supported by SASL library"); 25 local get_auth_db = assert(scram_hashers[hash_name], "SCRAM-"..hash_name.." not supported by SASL library");
26 local scram_name = "scram_"..hash_name:gsub("%-","_"):lower();
26 27
27 -- Default; can be set per-user 28 -- Default; can be set per-user
28 local default_iteration_count = 4096; 29 local default_iteration_count = 4096;
29 30
30 -- define auth provider 31 -- define auth provider
115 function provider.get_sasl_handler() 116 function provider.get_sasl_handler()
116 local testpass_authentication_profile = { 117 local testpass_authentication_profile = {
117 plain_test = function(_, username, password, realm) 118 plain_test = function(_, username, password, realm)
118 return usermanager.test_password(username, realm, password), true; 119 return usermanager.test_password(username, realm, password), true;
119 end, 120 end,
120 ["scram_"..hash_name:gsub("%-","_"):lower()] = function(_, username) 121 [scram_name] = function(_, username)
121 local credentials = accounts:get(username); 122 local credentials = accounts:get(username);
122 if not credentials then return; end 123 if not credentials then return; end
123 if credentials.password then 124 if credentials.password then
124 if provider.set_password(username, credentials.password) == nil then 125 if provider.set_password(username, credentials.password) == nil then
125 return nil, "Auth failed. Could not set hashed password from plaintext."; 126 return nil, "Auth failed. Could not set hashed password from plaintext.";