Mercurial > prosody-modules
annotate mod_auth_any/mod_auth_any.lua @ 5185:09d6bbd6c8a4
mod_http_oauth2: Fix treatment of 'redirect_uri' parameter in code flow
It's optional and the one stored in the client registration should
really be used instead. RFC 6749 says an URI provided as parameter MUST
be validated against the stored one but does not say how.
Given that the client needs their secret to proceed, it seems fine to
leave this for later.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 02 Mar 2023 22:00:42 +0100 |
| parents | 1f7820f68868 |
| children |
| 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 |
