annotate mod_muc_rtbl/README.md @ 6319:04c3273cb81f

mod_auth_cyrus: Add empty 'profile' table to SASL handler objects This is for compatibility with Prosody's built-in util.sasl objects. A SASL profile table usually includes methods supported by the backend, which can be used by SASL mechanism handlers to perform operations (such as testing the password). It also optionally contains a 'cb' field with channel binding method handlers. The Cyrus backend doesn't support channel binding, and doesn't have the same concept of auth backend methods (it handles all that internally, and Prosody has no insight or control over it). Thus, we create an empty profile which informs Prosody that the SASL handler does not support any of the auth or channel binding methods. Some features will not work, but they didn't work anyway. This just makes it explicit. This fixes a traceback in mod_sasl2_fast, which expected SASL handlers to always contain a 'profile' field.
author Matthew Wild <mwild1@gmail.com>
date Thu, 04 Sep 2025 10:14:46 +0100
parents 093c47ee2041
children 4c788f8be94e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 ---
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 summary:
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 rockspec:
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 dependencies:
6304
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
5 - mod_rtbl
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 labels:
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 - Stage-Alpha
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 ...
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 This module subscribes to a real-time blocklist using pubsub (XEP-0060). As
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 entries are added and removed from the blocklist, it immediately updates a
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 local service-wide ban list.
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 # Configuring
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 Load this module on your existing MUC component like so:
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 ```lua
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 Component "channels.example.com" "muc"
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 modules_enabled = {
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 -- other modules etc
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 "muc_rtbl";
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 }
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 ```
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25
6306
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
26 Then you should configure one or more lists you want to subscribe to, supplying
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
27 full or partial URIs (the default node is 'muc_bans_sha256' if unspecified):
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28
6304
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
29 ```lua
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
30 muc_rtbls = {
6306
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
31 "rtbl.example";
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
32 -- Equivalent to above
6304
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
33 "xmpp:rtbl.example?;node=muc_bans_sha256";
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
34 }
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 ```
6304
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
36
6306
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
37 If an unaffiliated JID matches an entry found in any of the configured RTBLs,
6304
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
38 this module will block:
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
39
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
40 - Joins
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
41 - Group chat messages
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
42 - Private messages
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43
6306
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
44 from the JID that matched.
093c47ee2041 mod_muc_rtbl: Simplify configuration and tweak docs
Matthew Wild <mwild1@gmail.com>
parents: 6304
diff changeset
45
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 # Compatibility
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47
6304
6e2458b69e33 mod_muc_rtbl: Use mod_rtbl, adds support for multiple list subscriptions
Matthew Wild <mwild1@gmail.com>
parents: 4807
diff changeset
48 Should work with Prosody >= 0.12.x
4807
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
50 # Developers
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 ## Protocol
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 This version of mod_muc_rtbl assumes that the pubsub node contains one item
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 per blocked JID. The item id should be the SHA256 hash of the JID to block.
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 The payload is not currently used, but it is recommend to use a XEP-0377
62a65c52c3f5 mod_muc_rtbl: Real-time blocklist checks for MUC services
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 report element as the payload.