diff options
author | Badlop <badlop@process-one.net> | 2011-08-16 02:28:25 +0400 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2011-08-16 02:28:25 +0400 |
commit | 24f5c964cda59b6f12d34fa3e4180817a8f1ea7d (patch) | |
tree | c0129a7709839f5ecf38776f6a8e4e03b1815ca9 /src/ejabberd_c2s.erl | |
parent | 1b7cc33a7fb0ea831a1efd17f2fd1367cc3e13d2 (diff) |
New SASL authentication method: SCRAM-SHA-1 (thanks to Stephen Röttger)(EJAB-1196)
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index e8234195f..7c2872e65 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -853,6 +853,21 @@ wait_for_sasl_response({xmlstreamelement, #xmlel{ns = NS, name = Name} = El}, authenticated = true, auth_module = AuthModule, user = list_to_binary(U)}); + {ok, Props, ServerOut} -> + catch (StateData#state.sockmod):reset_stream( + StateData#state.socket), + send_element(StateData, exmpp_server_sasl:success(ServerOut)), + U = proplists:get_value(username, Props), + + AuthModule = proplists:get_value(auth_module, Props), + ?INFO_MSG("(~w) Accepted authentication for ~s by ~s", + [StateData#state.socket, U, AuthModule]), + fsm_next_state(wait_for_stream, + StateData#state{ + streamid = new_id(), + authenticated = true, + auth_module = AuthModule, + user = list_to_binary(U)}); {continue, ServerOut, NewSASLState} -> send_element(StateData, exmpp_server_sasl:challenge(ServerOut)), |