diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2018-05-30 20:53:11 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2018-05-30 20:53:11 +0200 |
commit | dacba3ec0085ded3532b45c0a519f0835e96c99f (patch) | |
tree | d051dd11ba3d2cff351619507e0d0fb94cfc06df | |
parent | Get rid of direct calls to 'session' Mnesia table (diff) | |
parent | Fix authentication for usernames containing uppercase characters (diff) |
Merge remote-tracking branch 'processone/pr/2446'
* processone/pr/2446:
Fix authentication for usernames containing uppercase characters
-rw-r--r-- | src/ejabberd_auth.erl | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index 847549c74..39598e527 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -230,19 +230,22 @@ check_password_with_authmodule(User, AuthzId, Server, Password) -> check_password_with_authmodule(User, AuthzId, Server, Password, Digest, DigestGen) -> case validate_credentials(User, Server) of {ok, LUser, LServer} -> - lists:foldl( - fun(Mod, false) -> - case db_check_password( - LUser, AuthzId, LServer, Password, + case jid:nodeprep(AuthzId) of + error -> + false; + LAuthzId -> + lists:foldl( + fun(Mod, false) -> + case db_check_password( + LUser, LAuthzId, LServer, Password, Digest, DigestGen, Mod) of true -> {true, Mod}; false -> false - end; - (_, Acc) -> - Acc - end, false, auth_modules(LServer)); - _ -> - false + end; + (_, Acc) -> + Acc + end, false, auth_modules(LServer)) + end end. -spec set_password(binary(), binary(), password()) -> ok | {error, atom()}. |