summaryrefslogtreecommitdiff
path: root/sleekxmpp/features/sasl_anonymous.py
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/features/sasl_anonymous.py')
-rw-r--r--sleekxmpp/features/sasl_anonymous.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/sleekxmpp/features/sasl_anonymous.py b/sleekxmpp/features/sasl_anonymous.py
new file mode 100644
index 00000000..469d9d19
--- /dev/null
+++ b/sleekxmpp/features/sasl_anonymous.py
@@ -0,0 +1,31 @@
+import base64
+import sys
+import logging
+
+from sleekxmpp.stanza.stream import sasl
+from sleekxmpp.plugins.base import base_plugin
+
+
+log = logging.getLogger(__name__)
+
+
+class sasl_anonymous(base_plugin):
+
+ def plugin_init(self):
+ self.name = 'SASL ANONYMOUS'
+ self.rfc = '6120'
+ self.description = 'SASL ANONYMOUS Mechanism'
+
+ self.xmpp.register_sasl_mechanism('ANONYMOUS',
+ self._handle_anonymous,
+ priority=self.config.get('priority', 0))
+
+ def _handle_anonymous(self):
+ if self.xmpp.boundjid.user:
+ return False
+
+ resp = sasl.Auth(self.xmpp)
+ resp['mechanism'] = 'ANONYMOUS'
+ resp.send(now=True)
+
+ return True