Software / code / prosody-modules
Annotate
mod_http_auth_check/mod_http_auth_check.lua @ 6258:86989059de5b
:multibe Readme.md: correct prosody 0.13 to 13
diff --git a/mod_muc_anonymize_moderation_actions/README.md b/mod_muc_anonymize_moderation_actions/README.md
--- a/mod_muc_anonymize_moderation_actions/README.md
+++ b/mod_muc_anonymize_moderation_actions/README.md
@@ -34,7 +34,7 @@ Component "muc.example.com" "muc"
------ ----------------------
trunk Works as of 25-05-12
- 0.13 Works
+ 13 Works
0.12 Works
------ ----------------------
diff --git a/mod_sasl2/README.md b/mod_sasl2/README.md
--- a/mod_sasl2/README.md
+++ b/mod_sasl2/README.md
@@ -32,6 +32,6 @@ This module requires Prosody **trunk** a
Prosody Version Status
----------------------- ----------------
trunk as of 2025-05-25 Works
- 0.13 Works
+ 13 Works
0.12 Does not work
----------------------- ----------------
diff --git a/mod_sasl2_bind2/README.md b/mod_sasl2_bind2/README.md
--- a/mod_sasl2_bind2/README.md
+++ b/mod_sasl2_bind2/README.md
@@ -17,5 +17,5 @@ This module depends on [mod_sasl2]. It e
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Works
+ 13 Works
0.12 Does not work
diff --git a/mod_sasl2_fast/README.md b/mod_sasl2_fast/README.md
--- a/mod_sasl2_fast/README.md
+++ b/mod_sasl2_fast/README.md
@@ -34,5 +34,5 @@ clients being logged out unexpectedly.
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Work
+ 13 Work
0.12 Does not work
diff --git a/mod_sasl2_sm/README.md b/mod_sasl2_sm/README.md
--- a/mod_sasl2_sm/README.md
+++ b/mod_sasl2_sm/README.md
@@ -18,5 +18,5 @@ configuration options.
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Work
+ 13 Work
0.12 Does not work
diff --git a/mod_sasl_ssdp/README.md b/mod_sasl_ssdp/README.md
--- a/mod_sasl_ssdp/README.md
+++ b/mod_sasl_ssdp/README.md
@@ -21,5 +21,5 @@ There are no configuration options for t
Prosody-Version Status
--------------- ----------------------
trunk Works as of 2025-05-25
- 0.13 Works
+ 13 Works
0.12 Does not work
diff --git a/mod_vcard_muc/README.md b/mod_vcard_muc/README.md
--- a/mod_vcard_muc/README.md
+++ b/mod_vcard_muc/README.md
@@ -23,7 +23,7 @@ modules_enabled = {
# Compatibility
------------------------- ----------------------------------------
- 0.13 Room avatar feature included in Prosody
+ 13 Room avatar feature included in Prosody
0.12 Works
------------------------- ----------------------------------------
diff --git a/mod_warn_legacy_tls/README.md b/mod_warn_legacy_tls/README.md
--- a/mod_warn_legacy_tls/README.md
+++ b/mod_warn_legacy_tls/README.md
@@ -44,5 +44,5 @@ legacy_tls_versions = { "TLSv1", "TLSv1.
Prosody-Version Status
--------------- ---------------------
trunk Works as of 25-05-25
-0.13 Works
+13 Works
0.12 Works
| author | Menel <menel@snikket.de> |
|---|---|
| date | Wed, 14 May 2025 23:32:04 +0200 |
| parent | 2886:5ca6d53d3186 |
| rev | line source |
|---|---|
|
2884
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
1 -- HTTP Is User Valid |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
2 -- By Nicolas Cedilnik <nicoco@nicoco.fr> |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
3 |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
4 local jid_prep = require "util.jid".prep; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
5 local jid_split = require "util.jid".split; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
6 local test_password = require "core.usermanager".test_password; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
7 local b64_decode = require "util.encodings".base64.decode; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
8 local saslprep = require "util.encodings".stringprep.saslprep; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
9 local realm = module:get_host() .. "/" .. module:get_name(); |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
10 module:depends"http"; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
11 |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
12 local function authenticate (event, path) |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
13 local request = event.request; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
14 local response = event.response; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
15 local headers = request.headers; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
16 if not headers.authorization then |
|
2886
5ca6d53d3186
Return 401 with correct realm when no user/pass is provided
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
2884
diff
changeset
|
17 response.headers.www_authenticate = ("Basic realm=%q"):format(realm); |
|
5ca6d53d3186
Return 401 with correct realm when no user/pass is provided
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
2884
diff
changeset
|
18 return 401 |
|
2884
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
19 end |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
20 local from_jid, password = b64_decode(headers.authorization:match"[^ ]*$"):match"([^:]*):(.*)"; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
21 from_jid = jid_prep(from_jid); |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
22 password = saslprep(password); |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
23 if from_jid and password then |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
24 local user, host = jid_split(from_jid); |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
25 local ok, err = test_password(user, host, password); |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
26 if ok and user and host then |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
27 return 200 |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
28 elseif err then |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
29 return 401 |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
30 end |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
31 end |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
32 end |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
33 |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
34 module:provides("http", { |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
35 route = { |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
36 GET = authenticate |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
37 }; |
|
16e9f37b3f82
mod_http_auth_check: New HTTP module to test user credentials
Nicolas Cedilnik <nicoco@nicoco.fr>
parents:
diff
changeset
|
38 }); |