Mercurial > prosody-modules
annotate mod_proxy65_whitelist/mod_proxy65_whitelist.lua @ 5511:0860497152af
mod_http_oauth2: Record hash of client_id to allow future verification
RFC 6819 section 5.2.2.2 states that refresh tokens MUST be bound to the
client. In order to do that, we must record something that can
definitely tie the client to the grant. Since the full client_id is so
large (why we have this client_subset function), a hash is stored
instead.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 02 Jun 2023 10:14:16 +0200 |
| parents | f96b947303a2 |
| children |
| rev | line source |
|---|---|
|
1510
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local allowed_streamhosts = module:get_option_set("allowed_streamhosts", {}); -- eg proxy.eu.jabber.org |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 if module:get_option_boolean("allow_local_streamhosts", true) then |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 for hostname, host in pairs(hosts) do |
|
1512
cf572280b4dc
mod_proxy65_whitelist: Fix variable name
Kim Alvefur <zash@zash.se>
parents:
1511
diff
changeset
|
5 if host.modules.proxy65 then |
|
1513
4ef0a1a499fa
mod_proxy65_whitelist: Fix util.set use (thanks deoren)
Kim Alvefur <zash@zash.se>
parents:
1512
diff
changeset
|
6 allowed_streamhosts:add(hostname); |
|
1510
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 end |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 end |
|
2358
f96b947303a2
mod_proxy65_whitelist: Only add proxy hosts enabled after module is loaded if allow_local_streamhosts = true
Kim Alvefur <zash@zash.se>
parents:
2350
diff
changeset
|
9 |
|
f96b947303a2
mod_proxy65_whitelist: Only add proxy hosts enabled after module is loaded if allow_local_streamhosts = true
Kim Alvefur <zash@zash.se>
parents:
2350
diff
changeset
|
10 module:hook_global("host-activated", function (host) |
|
f96b947303a2
mod_proxy65_whitelist: Only add proxy hosts enabled after module is loaded if allow_local_streamhosts = true
Kim Alvefur <zash@zash.se>
parents:
2350
diff
changeset
|
11 if hosts[host].modules.proxy65 then |
|
f96b947303a2
mod_proxy65_whitelist: Only add proxy hosts enabled after module is loaded if allow_local_streamhosts = true
Kim Alvefur <zash@zash.se>
parents:
2350
diff
changeset
|
12 allowed_streamhosts:add(host); |
|
f96b947303a2
mod_proxy65_whitelist: Only add proxy hosts enabled after module is loaded if allow_local_streamhosts = true
Kim Alvefur <zash@zash.se>
parents:
2350
diff
changeset
|
13 end |
|
f96b947303a2
mod_proxy65_whitelist: Only add proxy hosts enabled after module is loaded if allow_local_streamhosts = true
Kim Alvefur <zash@zash.se>
parents:
2350
diff
changeset
|
14 end); |
|
1510
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 end |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 local function filter_streamhosts(tag) |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 if tag.name == "streamhost" and not allowed_streamhosts:contains(tag.attr.jid) then |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 return nil; |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 end |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 return tag; |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 end |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 module:hook("iq/full", function (event) |
|
2350
67990e045d4f
mod_proxy65_whitelist: Remove unused variable [luacheck]
Kim Alvefur <zash@zash.se>
parents:
2349
diff
changeset
|
25 local stanza = event.stanza; |
|
1510
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 if stanza.attr.type == "set" then |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 local payload = stanza:get_child("query", "http://jabber.org/protocol/bytestreams"); |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 if payload then |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 payload:maptags(filter_streamhosts); |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 end |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 end |
|
094e9d5a4d94
mod_block_p2pft: Plugin for forcing local clients to use approved file transfer proxies
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 end, 1); |
