annotate mod_auth_any/mod_auth_any.lua @ 4249:64aa1d9d70ac

mod_rest: Catch and log errors in callback promise chain From the code it looks like it should be possible to reply to an error stanza, but it did not. Turns out I was saved by my local developer mode module which throws errors if an attempt is made to create an errror reply to an error stanza. However nothing collects this error from the promise, so all I got was confusion.
author Kim Alvefur <zash@zash.se>
date Sun, 15 Nov 2020 16:25:49 +0100
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