mod_http_oauth2: Implement RFC 7628 Proof Key for Code Exchange
Likely to become mandatory in OAuth 2.1.
Backwards compatible since the default 'plain' verifier would compare
nil with nil if the relevant parameters are left out.
local jid_split = require "util.jid".split;
local jid_bare = require "util.jid".bare;
local load_roster = require "core.rostermanager".load_roster;
local blocked_servers = module:get_option_set("block_s2s_subscriptions")._items;
function filter_presence(event)
if blocked_servers[event.origin.from_host] and event.stanza.attr.type == "subscribe" then
local stanza = event.stanza;
local to_user, to_host = jid_split(stanza.attr.to);
local roster = load_roster(to_user, to_host);
if roster and roster[jid_bare(stanza.attr.from)] then
return; -- In roster, pass through
end
return true; -- Drop
end
end
module:hook("presence/bare", filter_presence, 200); -- Client receiving