Comparison

plugins/mod_tokenauth.lua @ 13098:65d2ff6e674e

mod_tokenauth: Return error instead of session for token without role Such a session triggers errors in module:may or other places since it is generally expected that a session must have a role.
author Kim Alvefur <zash@zash.se>
date Sun, 07 May 2023 20:33:03 +0200
parent 13074:794a5ad5495e
child 13099:a1ba503610ed
comparison
equal deleted inserted replaced
13097:6771acb8e857 13098:65d2ff6e674e
250 end 250 end
251 251
252 local token_info, err = _get_validated_token_info(token_id, token_user, token_host, token_secret); 252 local token_info, err = _get_validated_token_info(token_id, token_user, token_host, token_secret);
253 if not token_info then return nil, err; end 253 if not token_info then return nil, err; end
254 254
255 local role = select_role(token_user, token_host, token_info.role);
256 if not role then return nil, "not-authorized"; end
255 return { 257 return {
256 username = token_user; 258 username = token_user;
257 host = token_host; 259 host = token_host;
258 resource = token_info.resource or resource or generate_identifier(); 260 resource = token_info.resource or resource or generate_identifier();
259 261
260 role = select_role(token_user, token_host, token_info.role); 262 role = role;
261 }; 263 };
262 end 264 end
263 265
264 function revoke_token(token) 266 function revoke_token(token)
265 local token_id, token_user, token_host = parse_token(token); 267 local token_id, token_user, token_host = parse_token(token);