Software /
code /
prosody
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); |