Software /
code /
prosody-modules
Annotate
mod_auth_pam/mod_auth_pam.lua @ 4515:2e33eeafe962
mod_muc_markers: Prevent any markers from reaching the archive, even if untracked
Original intention was to leave alone things that this module isn't
handling. However markers in archives are just problematic without
more advanced logic about what is markable and what is not. It also
requires a more advanced query in mod_muc_rai to determine the latest
markable message instead of the latest archived message.
I'd rather keep the "is archivable" and "is markable" definition the
same for simplicity. I don't want to introduce yet another set of rules
for no reason.
No markers in MAM.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 22 Mar 2021 15:55:02 +0000 |
parent | 1538:57bb2497fadc |
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"; |