24 local anonymous_login = module:get_option("anonymous_login"); |
24 local anonymous_login = module:get_option("anonymous_login"); |
25 local allow_unencrypted_plain_auth = module:get_option("allow_unencrypted_plain_auth") |
25 local allow_unencrypted_plain_auth = module:get_option("allow_unencrypted_plain_auth") |
26 |
26 |
27 -- Cyrus config options |
27 -- Cyrus config options |
28 local require_provisioning = module:get_option("cyrus_require_provisioning") or false; |
28 local require_provisioning = module:get_option("cyrus_require_provisioning") or false; |
29 local cyrus_service_realm = module:get_option("cyrus_service_realm"); |
|
30 local cyrus_service_name = module:get_option("cyrus_service_name"); |
|
31 local cyrus_application_name = module:get_option("cyrus_application_name"); |
|
32 |
29 |
33 local log = module._log; |
30 local log = module._log; |
34 |
31 |
35 local xmlns_sasl ='urn:ietf:params:xml:ns:xmpp-sasl'; |
32 local xmlns_sasl ='urn:ietf:params:xml:ns:xmpp-sasl'; |
36 local xmlns_bind ='urn:ietf:params:xml:ns:xmpp-bind'; |
33 local xmlns_bind ='urn:ietf:params:xml:ns:xmpp-bind'; |
37 local xmlns_stanzas ='urn:ietf:params:xml:ns:xmpp-stanzas'; |
34 local xmlns_stanzas ='urn:ietf:params:xml:ns:xmpp-stanzas'; |
38 |
35 |
39 local new_sasl; |
36 local new_sasl = require "util.sasl".new; |
40 if sasl_backend == "builtin" then |
37 if sasl_backend ~= "builtin" then |
41 new_sasl = require "util.sasl".new; |
|
42 elseif sasl_backend == "cyrus" then |
|
43 prosody.unlock_globals(); --FIXME: Figure out why this is needed and |
|
44 -- why cyrussasl isn't caught by the sandbox |
|
45 local ok, cyrus = pcall(require, "util.sasl_cyrus"); |
|
46 prosody.lock_globals(); |
|
47 if ok then |
|
48 local cyrus_new = cyrus.new; |
|
49 new_sasl = function(realm) |
|
50 return cyrus_new( |
|
51 cyrus_service_realm or realm, |
|
52 cyrus_service_name or "xmpp", |
|
53 cyrus_application_name or "prosody" |
|
54 ); |
|
55 end |
|
56 else |
|
57 module:log("error", "Failed to load Cyrus SASL because: %s", cyrus); |
|
58 error("Failed to load Cyrus SASL"); |
|
59 end |
|
60 else |
|
61 module:log("error", "Unknown SASL backend: %s", sasl_backend); |
38 module:log("error", "Unknown SASL backend: %s", sasl_backend); |
62 error("Unknown SASL backend"); |
39 error("Unknown SASL backend"); |
63 end |
40 end |
64 |
41 |
65 local anonymous_authentication_profile = { |
42 local anonymous_authentication_profile = { |