diff --git a/ejabberd_auth_http/src/ejabberd_auth_http.erl b/ejabberd_auth_http/src/ejabberd_auth_http.erl index 85c59a1..4bd5386 100644 --- a/ejabberd_auth_http/src/ejabberd_auth_http.erl +++ b/ejabberd_auth_http/src/ejabberd_auth_http.erl @@ -16,6 +16,7 @@ -export([start/1, set_password/3, check_password/4, + check_password/3, check_password/6, try_register/3, dirty_get_registered_users/0, @@ -81,6 +82,18 @@ check_password(LUser, _AuthzId, LServer, Password) -> {ok, true} =:= verify_scram_password(LUser, LServer, Password) end. +-spec check_password(ejabberd:luser(), ejabberd:lserver(), binary()) -> boolean(). +check_password(LUser, LServer, Password) -> + case scram2:enabled(LServer) of + false -> + case make_req(get, <<"check_password">>, LUser, LServer, Password) of + {ok, <<"true">>} -> true; + _ -> false + end; + true -> + {ok, true} =:= verify_scram_password(LUser, LServer, Password) + end. + -spec check_password(ejabberd:luser(), binary(), ejabberd:lserver(), binary(), binary(), fun()) -> boolean(). check_password(LUser, _AuthzId, LServer, Password, Digest, DigestGen) -> case make_req(get, <<"get_password">>, LUser, LServer, <<"">>) of