Anonymous authentication
Implemented ANONYMOUS authentication on the ClientXMPP class.
To use it, you just need to provide a domain (e.g 'anon.example.com')
with an optional resource (e.g 'anon.example.com/resource') as the JID,
with no password. The JID class has been improved to accept
domains as fulljid.
You can test this with echo_client.py
python echo_client.py -j anon.louiz.org/ # anonymous with a resource
# defined by the server
python echo_client.py -j anon.louiz.org/resource # anonymous with given
# resource
The "normal" authentication method still works exactly like before.
This commit is contained in:
committed by
Lance Stout
parent
4eb4d729ee
commit
2d18d905a5
@@ -304,7 +304,7 @@ class ClientXMPP(BaseXMPP):
|
||||
if sasl_mechs:
|
||||
for sasl_mech in sasl_mechs:
|
||||
self.features.append("sasl:%s" % sasl_mech.text)
|
||||
if 'sasl:PLAIN' in self.features:
|
||||
if 'sasl:PLAIN' in self.features and self.boundjid.user:
|
||||
if sys.version_info < (3, 0):
|
||||
user = bytes(self.username)
|
||||
password = bytes(self.password)
|
||||
@@ -318,6 +318,8 @@ class ClientXMPP(BaseXMPP):
|
||||
self.send("<auth xmlns='%s' mechanism='PLAIN'>%s</auth>" % (
|
||||
sasl_ns,
|
||||
auth))
|
||||
elif 'sasl:ANONYMOUS' in self.features and not self.boundjid.user:
|
||||
self.send("<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='ANONYMOUS' />")
|
||||
else:
|
||||
logging.error("No appropriate login method.")
|
||||
self.disconnect()
|
||||
|
||||
Reference in New Issue
Block a user