From 9072ff18c16fdeee8cdc677ff0310b5b69c4fd34 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Mon, 14 Dec 2009 17:39:32 +0100 Subject: [PATCH] [Dave Cridland] implement EXTERNAL auth method. See #5512 --- src/common/xmpp/auth_nb.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/common/xmpp/auth_nb.py b/src/common/xmpp/auth_nb.py index b85b51689..cac73ec87 100644 --- a/src/common/xmpp/auth_nb.py +++ b/src/common/xmpp/auth_nb.py @@ -207,6 +207,14 @@ class SASL(PlugIn): self.startsasl = SASL_IN_PROCESS self._owner.send(str(node)) raise NodeProcessed + if "EXTERNAL" in self.mecs: + self.mecs.remove('EXTERNAL') + node = Node('auth', attrs={'xmlns': NS_SASL, 'mechanism': 'EXTERNAL'}, + payload=[base64.encodestring('%s@%s' % (self.username, + self._owner.Server)).replace('\n', '')]) + self.startsasl = SASL_IN_PROCESS + self._owner.send(str(node)) + raise NodeProcessed if 'GSSAPI' in self.mecs and have_kerberos: self.mecs.remove('GSSAPI') try: @@ -237,7 +245,8 @@ class SASL(PlugIn): self.startsasl = SASL_IN_PROCESS raise NodeProcessed self.startsasl = SASL_FAILURE - log.error('I can only use DIGEST-MD5, GSSAPI and PLAIN mecanisms.') + log.error('I can only use EXTERNAL, DIGEST-MD5, GSSAPI and PLAIN ' + 'mecanisms.') if self.on_sasl: self.on_sasl() return