Mercurial > prosody-modules
changeset 5082:ddb1940b08e0
mod_sasl2_fast: Clean up backend return values (fixes constant rotation)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 07 Nov 2022 10:19:10 +0000 |
parents | 660160fe97fa |
children | 4837232474ca |
files | mod_sasl2_fast/mod_sasl2_fast.lua |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_sasl2_fast/mod_sasl2_fast.lua Sat Oct 29 12:01:32 2022 +0200 +++ b/mod_sasl2_fast/mod_sasl2_fast.lua Mon Nov 07 10:19:10 2022 +0000 @@ -63,7 +63,7 @@ elseif current_time - token.issued_at > fast_token_min_ttl then rotation_needed = true; end - return true, username, hmac_f(token.secret, "Responder"..cb_data), token, rotation_needed; + return true, username, hmac_f(token.secret, "Responder"..cb_data), rotation_needed; end end if not tried_current_token then @@ -173,23 +173,24 @@ local function new_ht_mechanism(mechanism_name, backend_profile_name, cb_name) return function (sasl_handler, message) local backend = sasl_handler.profile[backend_profile_name]; - local username, token_hash = message:match("^([^%z]+)%z(.+)$"); - if not username then + local authc_username, token_hash = message:match("^([^%z]+)%z(.+)$"); + if not authc_username then return "failure", "malformed-request"; end local cb_data = cb_name and sasl_handler.profile.cb[cb_name](sasl_handler) or ""; - local ok, status, response, rotation_needed = backend( + local ok, authz_username, response, rotation_needed = backend( mechanism_name, - username, + authc_username, sasl_handler.client_id, token_hash, cb_data, sasl_handler.invalidate ); if not ok then - return "failure", status or "not-authorized"; + -- authz_username is error condition + return "failure", authz_username or "not-authorized"; end - sasl_handler.username = status; + sasl_handler.username = authz_username; sasl_handler.rotation_needed = rotation_needed; return "success", response; end