Software /
code /
prosody-modules
Annotate
mod_auth_any/mod_auth_any.lua @ 5213:dc0f502c12f1
mod_http_oauth2: Fix authorization code logic
I have no idea what it did before or if it even worked.
RFC 6749 section 4.1.2 says:
> A maximum authorization code lifetime of 10 minutes is RECOMMENDED.
So this should prevent use of codes older than 10 minutes and remove
them from the cache some time after they expire.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 06 Mar 2023 16:49:43 +0100 |
parent | 2439:1f7820f68868 |
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 |