diff mod_auth_dovecot/auth_dovecot/mod_auth_dovecot.lua @ 700:0c130c45b7c1

mod_auth_dovecot: Old forgotten changes. Testing appreciated.
author Kim Alvefur <zash@zash.se>
date Thu, 07 Jun 2012 23:41:25 +0200
parents 942738953ff3
children 881ec9919144
line wrap: on
line diff
--- a/mod_auth_dovecot/auth_dovecot/mod_auth_dovecot.lua	Tue Jun 05 22:47:12 2012 +0200
+++ b/mod_auth_dovecot/auth_dovecot/mod_auth_dovecot.lua	Thu Jun 07 23:41:25 2012 +0200
@@ -14,6 +14,7 @@
 local service_realm = module:get_option("realm");
 local service_name = module:get_option("service_name");
 local append_host = module:get_option_boolean("auth_append_host");
+--assert(not append_host, "auth_append_host does not work");
 local validate_domain = module:get_option_boolean("validate_append_host");
 local handle_appended = module:get_option_string("handle_appended");
 local util_sasl_new = require "util.sasl".new;
@@ -25,7 +26,7 @@
 		service_realm or realm,
 		service_name or "xmpp",
 
-		socket_port and { socket_path, socket_port } or socket_path,
+		socket_port and { socket_host, socket_port } or socket_path,
 
 		{ --config
 			handle_domain = handle_appended or
@@ -55,22 +56,6 @@
 	return new_sasl(module.host):plain_test(username, password);
 end
 
-if append_host then
-	new_sasl = function(realm)
-		return util_sasl_new(realm, {
-			plain_test = function(sasl, username, password, realm)
-				local prepped_username = nodeprep(username);
-				if not prepped_username then
-					log("debug", "NODEprep failed on username: %s", username);
-					return "", nil;
-				end
-				prepped_username = prepped_username .. "@" .. module.host;
-				return provider.test_password(prepped_username, password), true;
-			end,
-		});
-	end
-end
-
 function provider.get_password(username)
 	return nil, "Passwords unavailable for "..name;
 end
@@ -80,10 +65,13 @@
 end
 
 function provider.user_exists(username)
+	return true -- FIXME
+--[[ This, sadly, doesn't work.
 	local user_test = new_sasl(module.host);
 	user_test:select("PLAIN");
 	user_test:process(("\0%s\0"):format(username));
 	return user_test.username == username;
+--]]
 end
 
 function provider.create_user(username, password)
@@ -94,5 +82,13 @@
 	return new_sasl(module.host);
 end
 
+if append_host then
+	function provider.test_password(username, password)
+		return new_sasl(module.host):plain_test(username .. "@".. (service_realm or module.host), password);
+	end
+
+	provider.get_sasl_handler = nil
+end
+
 module:add_item("auth-provider", provider);