annotate mod_auth_pam/mod_auth_pam.lua @ 6171:fe8222112cf4

mod_conversejs: Serve base app at / This makes things slightly less awkward for the browser to figure out which URLs belong to a PWA. The app's "start URL" was previously without the '/' and therefore was not considered within the scope of the PWA. Now the canonical app URL will always have a '/'. Prosody/mod_http should take care of redirecting existing links without the trailing / to the new URL. If you have an installation at https://prosody/conversejs then it is now at https://prosody/conversejs/ (the first URL will now redirect to the second URL if you use it). The alternative would be to make the PWA scope include the parent, i.e. the whole of https://prosody/ in this case. This might get messy if other PWAs are provided by the same site or Prosody installation, however.
author Matthew Wild <mwild1@gmail.com>
date Tue, 11 Feb 2025 13:18:38 +0000
parents 57bb2497fadc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1165
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- PAM authentication for Prosody
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 -- Copyright (C) 2013 Kim Alvefur
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 --
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 -- Requires https://github.com/devurandom/lua-pam
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 -- and LuaPosix
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local posix = require "posix";
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 local pam = require "pam";
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 local new_sasl = require "util.sasl".new;
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 function user_exists(username)
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 return not not posix.getpasswd(username);
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 function test_password(username, password)
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 local h, err = pam.start("xmpp", username, {
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 function (t)
1538
57bb2497fadc mod_auth_pam: Update for removal of PAM_ prefixes to constant names
Kim Alvefur <zash@zash.se>
parents: 1165
diff changeset
18 if #t == 1 and t[1][1] == pam.PROMPT_ECHO_OFF then
1165
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 return { { password, 0} };
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 });
1538
57bb2497fadc mod_auth_pam: Update for removal of PAM_ prefixes to constant names
Kim Alvefur <zash@zash.se>
parents: 1165
diff changeset
23 if h and h:authenticate() and h:endx(pam.SUCCESS) then
57bb2497fadc mod_auth_pam: Update for removal of PAM_ prefixes to constant names
Kim Alvefur <zash@zash.se>
parents: 1165
diff changeset
24 return user_exists(username), true;
1165
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 return nil, true;
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 function get_sasl_handler()
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 return new_sasl(module.host, {
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 plain_test = function(sasl, ...)
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 return test_password(...)
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 });
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 end
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36
b8762c9fb270 mod_auth_pam: Initial commit of simple PAM authentication module
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 module:provides"auth";