annotate mod_http_health/mod_http_health.lua @ 5682:527c747711f3

mod_http_oauth2: Limit revocation to clients own tokens in strict mode RFC 7009 section 2.1 states: > The authorization server first validates the client credentials (in > case of a confidential client) and then verifies whether the token was > issued to the client making the revocation request. If this > validation fails, the request is refused and the client is informed of > the error by the authorization server as described below. The first part was already covered (in strict mode). This adds the later part using the hash of client_id recorded in 0860497152af It still seems weird to me that revoking a leaked token should not be allowed whoever might have discovered it, as that seems the responsible thing to do.
author Kim Alvefur <zash@zash.se>
date Sun, 29 Oct 2023 11:30:49 +0100
parents 9bcd257dea4e
children 09233b625cb9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5161
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 module:set_global();
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 local modulemanager = require "core.modulemanager";
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 module:provides("http", {
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 route = {
5667
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
8 GET = function()
5161
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 for host in pairs(prosody.hosts) do
5667
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
10 local mods = modulemanager.get_modules(host);
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
11 for _, mod in pairs(mods) do
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
12 if mod.module.status_type == "error" then
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
13 return { status_code = 500; headers = { content_type = "text/plain" }; body = "HAS ERRORS\n" };
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
14 end
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
15 end
5161
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 end
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17
5667
9bcd257dea4e mod_http_health: Provide a health check HTTP endpoint
Kim Alvefur <zash@zash.se>
parents: 5161
diff changeset
18 return { status_code = 200; headers = { content_type = "text/plain" }; body = "OK\n" };
5161
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 end;
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 };
6af2d74daa15 mod_http_status: Report module statuses
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 });