annotate mod_presence_cache/README.markdown @ 5193:2bb29ece216b

mod_http_oauth2: Implement stateless dynamic client registration Replaces previous explicit registration that required either the additional module mod_adhoc_oauth2_client or manually editing the database. That method was enough to have something to test with, but would not probably not scale easily. Dynamic client registration allows creating clients on the fly, which may be even easier in theory. In order to not allow basically unauthenticated writes to the database, we implement a stateless model here. per_host_key := HMAC(config -> oauth2_registration_key, hostname) client_id := JWT { client metadata } signed with per_host_key client_secret := HMAC(per_host_key, client_id) This should ensure everything we need to know is part of the client_id, allowing redirects etc to be validated, and the client_secret can be validated with only the client_id and the per_host_key. A nonce injected into the client_id JWT should ensure nobody can submit the same client metadata and retrieve the same client_secret
author Kim Alvefur <zash@zash.se>
date Fri, 03 Mar 2023 21:14:19 +0100
parents ed2bb50d4f91
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1952
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 ---
2147
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
2 summary: Cache presence from remote users
1952
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 ...
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 Introduction
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 ============
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7
2147
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
8 This module stores a timestamp of the latest presence received from
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
9 users contacts so that the client can see who is online faster when they
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
10 sign in, and won't have to wait for remote servers to reply.
1952
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 Configuration
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 =============
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 Just enable the module.
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 modules_enabled = {
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 -- more modules
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 "presence_cache";
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 }
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 Advanced configuration
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 ======================
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24
2147
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
25 The size of the cache is tuneable:
1959
65beed3ac500 mod_presence_cache/README: Try to discourage full stanza caching since it is experimental
Kim Alvefur <zash@zash.se>
parents: 1952
diff changeset
26
2147
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
27 presence_cache_size = 99
1952
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28
2147
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
29 Compatibility
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
30 =============
1952
9d0c33ebbcc5 mod_presence_cache: Cache incoming presence broadcasts in order to get clients up to speed with who is online faster
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31
2147
ed2bb50d4f91 mod_presence_cache: Switch to using util.cache for limiting size of cache
Kim Alvefur <zash@zash.se>
parents: 2146
diff changeset
32 Requires 0.10 or later