Software / code / prosody
Comparison
plugins/mod_saslauth.lua @ 5362:612467e263af
s2smanager, mod_s2s, mod_dialback, mod_saslauth: Move s2smanager.make_authenticated() to mod_s2s, and plugins now signal authentication via the s2s-authenticated event
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 22 Mar 2013 14:18:23 +0000 |
| parent | 5351:901ed253bbf7 |
| child | 5535:0df0afc041d7 |
comparison
equal
deleted
inserted
replaced
| 5361:38e7a5fafb28 | 5362:612467e263af |
|---|---|
| 9 | 9 |
| 10 | 10 |
| 11 local st = require "util.stanza"; | 11 local st = require "util.stanza"; |
| 12 local sm_bind_resource = require "core.sessionmanager".bind_resource; | 12 local sm_bind_resource = require "core.sessionmanager".bind_resource; |
| 13 local sm_make_authenticated = require "core.sessionmanager".make_authenticated; | 13 local sm_make_authenticated = require "core.sessionmanager".make_authenticated; |
| 14 local s2s_make_authenticated = require "core.s2smanager".make_authenticated; | |
| 15 local base64 = require "util.encodings".base64; | 14 local base64 = require "util.encodings".base64; |
| 16 | 15 |
| 17 local cert_verify_identity = require "util.x509".verify_identity; | 16 local cert_verify_identity = require "util.x509".verify_identity; |
| 18 | 17 |
| 19 local usermanager_get_sasl_handler = require "core.usermanager".get_sasl_handler; | 18 local usermanager_get_sasl_handler = require "core.usermanager".get_sasl_handler; |
| 88 module:log("debug", "SASL EXTERNAL with %s succeeded", session.to_host); | 87 module:log("debug", "SASL EXTERNAL with %s succeeded", session.to_host); |
| 89 session.external_auth = "succeeded" | 88 session.external_auth = "succeeded" |
| 90 session:reset_stream(); | 89 session:reset_stream(); |
| 91 session:open_stream(); | 90 session:open_stream(); |
| 92 | 91 |
| 93 s2s_make_authenticated(session, session.to_host); | 92 module:fire_event("s2s-authenticated", { session = session, host = session.to_host }); |
| 94 return true; | 93 return true; |
| 95 end) | 94 end) |
| 96 | 95 |
| 97 module:hook_stanza(xmlns_sasl, "failure", function (session, stanza) | 96 module:hook_stanza(xmlns_sasl, "failure", function (session, stanza) |
| 98 if session.type ~= "s2sout_unauthed" or session.external_auth ~= "attempting" then return; end | 97 if session.type ~= "s2sout_unauthed" or session.external_auth ~= "attempting" then return; end |
| 185 end | 184 end |
| 186 session.sends2s(build_reply("success")) | 185 session.sends2s(build_reply("success")) |
| 187 | 186 |
| 188 local domain = text ~= "" and text or session.from_host; | 187 local domain = text ~= "" and text or session.from_host; |
| 189 module:log("info", "Accepting SASL EXTERNAL identity from %s", domain); | 188 module:log("info", "Accepting SASL EXTERNAL identity from %s", domain); |
| 190 s2s_make_authenticated(session, domain); | 189 module:fire_event("s2s-authenticated", { session = session, host = domain }); |
| 191 session:reset_stream(); | 190 session:reset_stream(); |
| 192 return true | 191 return true |
| 193 end | 192 end |
| 194 | 193 |
| 195 module:hook("stanza/urn:ietf:params:xml:ns:xmpp-sasl:auth", function(event) | 194 module:hook("stanza/urn:ietf:params:xml:ns:xmpp-sasl:auth", function(event) |