Matthew Wild <mwild1@gmail.com> [Sat, 01 Apr 2023 13:56:15 +0100] rev 5304
.luacheckrc: Add module.once
Matthew Wild <mwild1@gmail.com> [Sat, 01 Apr 2023 13:22:12 +0100] rev 5303
mod_audit: Add a command to print the audit log on the command-line
Matthew Wild <mwild1@gmail.com> [Sat, 01 Apr 2023 13:11:53 +0100] rev 5302
mod_audit: Support for adding location (GeoIP) to audit events
This can be more privacy-friendly than logging full IP addresses, and also
more informative to a user - IP addresses don't mean much to the average
person, however if they see activity from outside their expected country, they
can immediately identify suspicious activity.
As with IPs, this field is configurable for deployments that would like to
disable it. Location is also not logged when the geoip library is not
available.
Jonas Schäfer <jonas@wielicki.name> [Sat, 01 Apr 2023 12:10:56 +0200] rev 5301
mod_isolate_host: potentially pedantic optimization
By Zash.
Jonas Schäfer <jonas@wielicki.name> [Sat, 01 Apr 2023 12:03:08 +0200] rev 5300
mod_isolate_host: handle server-generated stanzas
The hook for setting the no_host_isolation is only called for c2s
sessions. This does not work for stanzas generated by the server,
such as PEP notifications or presence probe answers.
To handle that, we do per-stanza checks for the case that the origin
is local.
Jonas Schäfer <jonas@wielicki.name> [Fri, 31 Mar 2023 16:56:42 +0200] rev 5299
mod_authz_delegate: make resistant against startup order issues
There is no guarantee that the target_host gets activated and
initialized before the host this module is loaded on. As
add_default_permission is called during load time by many modules,
we need to be prepared to queue stuff.
Matthew Wild <mwild1@gmail.com> [Thu, 30 Mar 2023 11:32:50 +0100] rev 5298
mod_client_management: New module for users to view/manage permitted clients
This is just the data and API part.
Kim Alvefur <zash@zash.se> [Thu, 30 Mar 2023 12:06:18 +0200] rev 5297
mod_http_admin_api: Add roles to user schema in openapi
Kim Alvefur <zash@zash.se> [Thu, 30 Mar 2023 12:05:05 +0200] rev 5296
mod_http_admin_api: Fix types of numbers in openapi spec
Numbers are just 'number' in both JSON Schema and Lua
Kim Alvefur <zash@zash.se> [Wed, 29 Mar 2023 17:55:29 +0200] rev 5295
Merge accidental extra head
One does not simply rebase public mercurial changesets
Jonas Schäfer <jonas@wielicki.name> [Wed, 29 Mar 2023 17:52:21 +0200] rev 5294
mod_vcard_muc: take roles into account for access check
This allows admins on the MUC component to force-set avatars, even
if they are not owners in a particular MUC, similar to how they
are granted auto-ownership in other contexts.
Jonas Schäfer <jonas@wielicki.name> [Wed, 29 Mar 2023 17:21:45 +0200] rev 5293
mod_authz_delegate: introduce module to "link" authorization of hosts
See the readme :-).
Motivation is allowing Snikket admins to change circle avatars via
the web portal without bypassing Prosody access checks.
Jonas Schäfer <jonas@wielicki.name> [Wed, 29 Mar 2023 17:21:45 +0200] rev 5292
mod_authz_delegate: introduce module to "link" authorization of hosts
See the readme :-).
Motivation is allowing Snikket admins to change circle avatars via
the web portal without bypassing Prosody access checks.
Matthew Wild <mwild1@gmail.com> [Wed, 29 Mar 2023 16:13:42 +0100] rev 5291
mod_sasl2_fast: Add an API that allows modules to check if a client has FAST
Matthew Wild <mwild1@gmail.com> [Wed, 29 Mar 2023 16:13:00 +0100] rev 5290
mod_sasl2_fast: Add flag to FAST sasl_handler for easier identification
Other code that looks at session.sasl_handler can now detect if a client used
FAST to authenticate.
Matthew Wild <mwild1@gmail.com> [Wed, 29 Mar 2023 16:12:15 +0100] rev 5289
mod_sasl2_fast: Fix harmless off-by-one error (invalidates existing tokens!)
Problem:
This was causing the key to become "<token>--cur" instead of the expected
"<token>-cur". As the same key was used by the code to both set and get, it
still worked.
Rationale for change:
Although it worked, it's unintended, inconsistent and messy. It increases the
chances of future bugs due to the unexpected format.
Side-effects of change:
Existing '--cur' entries will not be checked after this change, and therefore
existing FAST clients will fail to authenticate until they attempt password
auth and obtain a new FAST token.
Existing '--cur' entries in storage will not be cleaned up by this commit, but
this is considered a minor issue, and okay for the relatively few FAST
deployments.
Kim Alvefur <zash@zash.se> [Tue, 28 Mar 2023 21:04:23 +0200] rev 5288
mod_http_admin_api: Fix missing import
Forgot in previous commit
Kim Alvefur <zash@zash.se> [Tue, 28 Mar 2023 20:45:11 +0200] rev 5287
mod_http_admin_api: Tweak token session to please module:may()
module:may() checks for type == "c2s", but mod_tokenauth does not
currently include that or most common session properties.
Fixes a traceback resulting from a different code path where
module:may() tries to index event.stanza, which does not exist for http
events.
Matthew Wild <mwild1@gmail.com> [Tue, 28 Mar 2023 12:43:05 +0100] rev 5286
mod_sasl2_fast: Invalidate tokens issued prior to last password change
Kim Alvefur <zash@zash.se> [Mon, 27 Mar 2023 23:19:09 +0200] rev 5285
mod_rest: Add an example bash script for using mod_rest
Also supports --login with mod_http_oauth2
Matthew Wild <mwild1@gmail.com> [Mon, 27 Mar 2023 18:51:12 +0100] rev 5284
mod_http_oauth2: Update to use new API of Prosody mod_tokenauth @ 601d9a375b86
Matthew Wild <mwild1@gmail.com> [Fri, 24 Mar 2023 14:29:07 +0000] rev 5283
mod_http_oauth2: Add support for refresh tokens
Kim Alvefur <zash@zash.se> [Sun, 26 Mar 2023 14:44:30 +0200] rev 5282
mod_http_oauth2: Declare additional client registration fields as strings
Previously any property not listed in the schema was allowed in any
form, which is probably a bit too liberal. Instead, limit extra fields
to simple strings, which should still allow localized versions of the
various URIs and descriptive properties per RFC 7591 ยง2.2
Kim Alvefur <zash@zash.se> [Sun, 26 Mar 2023 14:39:34 +0200] rev 5281
mod_http_oauth2: Stricten check of urlencoded form data
Because type(formdecode("string without equals sign")) == "string", so
best avoid continuing in that case, even if strings mostly behave as
tables as long as you don't hit one of the __index methods.
Kim Alvefur <zash@zash.se> [Sun, 26 Mar 2023 14:37:42 +0200] rev 5280
mod_http_oauth2: Pedantic optimization
Checking the length of the string seems like 30% more expensive than
comparing it with the empty string (by reference, probably).
Kim Alvefur <zash@zash.se> [Sat, 25 Mar 2023 20:18:05 +0100] rev 5279
mod_pubsub_feeds: Fix packaging of support library for installer
Kim Alvefur <zash@zash.se> [Fri, 17 Mar 2023 22:29:55 +0100] rev 5278
mod_muc_rtbl: Handle node purge
Prevents the module from going out of sync with the node in case this
event ever happens.
Kim Alvefur <zash@zash.se> [Fri, 24 Mar 2023 00:07:58 +0100] rev 5277
mod_http_oauth2: Fix traceback on missing 'scope' parameter
parse_scopes() takes a string and it is not optional
Kim Alvefur <zash@zash.se> [Thu, 23 Mar 2023 16:48:18 +0100] rev 5276
mod_http_oauth2: Focus username field automatically
Reduces effort, not having to click or tab to focus the username field.
Should have no negative effects since there's no other elements one
might want to focus.
Kim Alvefur <zash@zash.se> [Thu, 23 Mar 2023 16:28:08 +0100] rev 5275
mod_http_oauth2: Allow user to decide which requested scopes to grant
These should at the very least be shown to the user, so they can decide
whether to grant them.
Considered whether to filter the requested scopes down to actually
understood scopes that would be granted, but decided that this was a bit
complex for a first step, since role role selection and other kinds of
scopes are mixed into the same field here.