diff options
author | Badlop <badlop@process-one.net> | 2010-04-15 19:20:16 +0400 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-07-23 03:23:35 +0400 |
commit | aa791ad0c4d640f111d97e770ddd0c6328472593 (patch) | |
tree | 560a140fc3a3caa6c57f92eb60e82845105b575a /src/ejabberd_c2s.erl | |
parent | 17fc992ba9881e9db270db333c7e8d8282a19858 (diff) |
Support SASL GSSAPI authentication (thanks to Mikael Magnusson)(EJAB-831)
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 010fb177f..01d3c92c1 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -325,9 +325,16 @@ wait_for_stream({xmlstreamstart, #xmlel{ns = NS} = Opening}, StateData) -> send_header(StateData, Server, "1.0", DefaultLang), case StateData#state.authenticated of false -> + Realm = + case ejabberd_config:get_local_option({sasl_realm, Server}) of + undefined -> + ""; + Realm0 -> + Realm0 + end, SASLState = cyrsasl:server_new( - "jabber", Server, "", [], + "jabber", Server, Realm, [], fun(U) -> ejabberd_auth:get_password_with_authmodule( U, Server) @@ -339,8 +346,9 @@ wait_for_stream({xmlstreamstart, #xmlel{ns = NS} = Opening}, StateData) -> fun(U, P, D, DG) -> ejabberd_auth:check_password_with_authmodule( U, Server, P, D, DG) - end), - SASL_Mechs = [exmpp_server_sasl:feature( + end, + StateData#state.socket), + Mechs = [exmpp_server_sasl:feature( cyrsasl:listmech(Server))], SockMod = (StateData#state.sockmod):get_sockmod( |