# HG changeset patch # User Tobias Markmann # Date 1234634270 -3600 # Node ID b7ea802f3527430994c4a7275f171847b6b1a552 # Parent 6ea01e05b004fb2659cc025d589285c209454b34 Adding inital support for ANONYMOUS mechanism in SASL. diff -r 6ea01e05b004 -r b7ea802f3527 plugins/mod_saslauth.lua --- a/plugins/mod_saslauth.lua Fri Feb 13 16:43:44 2009 +0000 +++ b/plugins/mod_saslauth.lua Sat Feb 14 18:57:50 2009 +0100 @@ -106,6 +106,7 @@ -- TODO: Provide PLAIN only if TLS is active, this is a SHOULD from the introduction of RFC 4616. This behavior could be overridden via configuration but will issuing a warning or so. features:tag("mechanism"):text("PLAIN"):up(); features:tag("mechanism"):text("DIGEST-MD5"):up(); + features:tag("mechanism"):text("ANONYMOUS"):up(); features:up(); else features:tag("bind", bind_attr):tag("required"):up():up(); diff -r 6ea01e05b004 -r b7ea802f3527 util/sasl.lua --- a/util/sasl.lua Fri Feb 13 16:43:44 2009 +0000 +++ b/util/sasl.lua Sat Feb 14 18:57:50 2009 +0100 @@ -1,4 +1,4 @@ --- sasl.lua v0.2 +-- sasl.lua v0.3 -- Copyright (C) 2008-2009 Tobias Markmann -- -- All rights reserved. @@ -235,10 +235,21 @@ return object end +local function new_anonymous(realm, password_handler) + local object = { mechanism = "ANONYMOUS", realm = realm, password_handler = password_handler} + function object.feed(self, message) + return "success" + end + object["username"] = generate_uuid() + return object +end + + function new(mechanism, realm, password_handler) local object if mechanism == "PLAIN" then object = new_plain(realm, password_handler) elseif mechanism == "DIGEST-MD5" then object = new_digest_md5(realm, password_handler) + elseif mechanism == "ANONYMOUS" then object = new_anonymous(realm, password_handler) else log("debug", "Unsupported SASL mechanism: "..tostring(mechanism)); return nil