From 68762146d72636acd5037cfa24babd979c6beba5 Mon Sep 17 00:00:00 2001 From: Simon Paitrault Date: Thu, 24 Mar 2022 17:03:50 +0100 Subject: [PATCH] Checking users is active in SM for JWT authenticated user (#3795) Signed-off-by: Freyskeyd --- src/ejabberd_auth_jwt.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ejabberd_auth_jwt.erl b/src/ejabberd_auth_jwt.erl index caa2ddbf2..f38600bc7 100644 --- a/src/ejabberd_auth_jwt.erl +++ b/src/ejabberd_auth_jwt.erl @@ -85,7 +85,14 @@ check_password(User, AuthzId, Server, Token) -> end end. -user_exists(_User, _Host) -> {nocache, false}. +user_exists(User, Host) -> + %% Checking that the user has an active session + %% If the session was negociated by the JWT auth method then we define that the user exists + %% Any other cases will return that the user doesn't exist + {nocache, case ejabberd_sm:get_user_info(User, Host) of + [{_, Info}] -> proplists:get_value(auth_module, Info) == ejabberd_auth_jwt; + _ -> false + end}. use_cache(_) -> false.