annotate mod_auth_any/mod_auth_any.lua @ 5668:ecfd7aece33b

mod_measure_modules: Report module statuses via OpenMetrics Someone in the chat asked about a health check endpoint, which reminded me of mod_http_status, which provides access to module statuses with full details. After that, this idea came about, which seems natural. As noted in the README, it could be used to monitor that critical modules are in fact loaded correctly. As more modules use the status API, the more useful this module and mod_http_status becomes.
author Kim Alvefur <zash@zash.se>
date Fri, 06 Oct 2023 18:34:39 +0200
parents 1f7820f68868
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 -- Prosody IM
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 -- Copyright (C) 2008-2010 Matthew Wild
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 -- Copyright (C) 2008-2010 Waqas Hussain
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 --
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 -- COPYING file in the source package for more information.
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 --
2437
75be377b74ea mod_auth_any: Ignore unused arguments, useful to show what arguments are given
Kim Alvefur <zash@zash.se>
parents: 1343
diff changeset
8 -- luacheck: ignore 212
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 local datamanager = require "util.datamanager";
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 local new_sasl = require "util.sasl".new;
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
13 local host = module.host;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
14 local provider = { name = "any" };
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
16 function provider.test_password(username, password)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
17 return true;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
18 end
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
20 function provider.set_password(username, password)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
21 local account = datamanager.load(username, host, "accounts");
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
22 if account then
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
23 account.password = password;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
24 return datamanager.store(username, host, "accounts", account);
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 end
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
26 return nil, "Account not available.";
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
27 end
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
29 function provider.user_exists(username)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
30 return true;
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 end
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
33 function provider.create_user(username, password)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
34 return datamanager.store(username, host, "accounts", {password = password});
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
35 end
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
36
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
37 function provider.delete_user(username)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
38 return datamanager.store(username, host, "accounts", nil);
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
39 end
1294
bb1fb54360ab mod_auth_any: Allows any username/password to connect
Waqas Hussain <waqas20@gmail.com>, Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40
2438
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
41 function provider.get_sasl_handler()
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
42 local getpass_authentication_profile = {
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
43 plain_test = function(sasl, username, password, realm)
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
44 return true, true;
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
45 end
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
46 };
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
47 return new_sasl(module.host, getpass_authentication_profile);
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
48 end
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
49
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
50 module:add_item("auth-provider", provider);
a528627e45ab mod_auth_any: Remove provider constructor, it's only called once anyways
Kim Alvefur <zash@zash.se>
parents: 2437
diff changeset
51