aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2018-05-30 20:53:11 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2018-05-30 20:53:11 +0200
commitdacba3ec0085ded3532b45c0a519f0835e96c99f (patch)
treed051dd11ba3d2cff351619507e0d0fb94cfc06df
parentGet rid of direct calls to 'session' Mnesia table (diff)
parentFix 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.erl23
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()}.