11 local st = require "util.stanza"; |
11 local st = require "util.stanza"; |
12 local sm_bind_resource = require "core.sessionmanager".bind_resource; |
12 local sm_bind_resource = require "core.sessionmanager".bind_resource; |
13 local sm_make_authenticated = require "core.sessionmanager".make_authenticated; |
13 local sm_make_authenticated = require "core.sessionmanager".make_authenticated; |
14 local base64 = require "util.encodings".base64; |
14 local base64 = require "util.encodings".base64; |
15 |
15 |
|
16 local nodeprep = require "util.encodings".stringprep.nodeprep; |
16 local datamanager_load = require "util.datamanager".load; |
17 local datamanager_load = require "util.datamanager".load; |
17 local usermanager_validate_credentials = require "core.usermanager".validate_credentials; |
18 local usermanager_validate_credentials = require "core.usermanager".validate_credentials; |
18 local usermanager_get_supported_methods = require "core.usermanager".get_supported_methods; |
19 local usermanager_get_supported_methods = require "core.usermanager".get_supported_methods; |
19 local usermanager_user_exists = require "core.usermanager".user_exists; |
20 local usermanager_user_exists = require "core.usermanager".user_exists; |
20 local usermanager_get_password = require "core.usermanager".get_password; |
21 local usermanager_get_password = require "core.usermanager".get_password; |
68 end |
69 end |
69 |
70 |
70 local function credentials_callback(mechanism, ...) |
71 local function credentials_callback(mechanism, ...) |
71 if mechanism == "PLAIN" then |
72 if mechanism == "PLAIN" then |
72 local username, hostname, password = ...; |
73 local username, hostname, password = ...; |
|
74 username = nodeprep(username); |
|
75 if not username then |
|
76 return false; |
|
77 end |
73 local response = usermanager_validate_credentials(hostname, username, password, mechanism); |
78 local response = usermanager_validate_credentials(hostname, username, password, mechanism); |
74 if response == nil then |
79 if response == nil then |
75 return false; |
80 return false; |
76 else |
81 else |
77 return response; |
82 return response; |