diff options
author | Lance Stout <lancestout@gmail.com> | 2012-08-17 10:17:35 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-08-17 10:17:35 -0700 |
commit | 8a03bd72ae5d07ebee2bcd13e66441a94edd4f1a (patch) | |
tree | 676dcff039486089e87af14903b52b2465424119 | |
parent | f0e1fc5aadcde96a8c8e776c77dd80e91368d216 (diff) | |
download | slixmpp-8a03bd72ae5d07ebee2bcd13e66441a94edd4f1a.tar.gz slixmpp-8a03bd72ae5d07ebee2bcd13e66441a94edd4f1a.tar.bz2 slixmpp-8a03bd72ae5d07ebee2bcd13e66441a94edd4f1a.tar.xz slixmpp-8a03bd72ae5d07ebee2bcd13e66441a94edd4f1a.zip |
Ensure that auth is done based on the original, requested JID and not on the bound JID.
-rw-r--r-- | sleekxmpp/basexmpp.py | 7 | ||||
-rw-r--r-- | sleekxmpp/features/feature_mechanisms/mechanisms.py | 8 |
2 files changed, 10 insertions, 5 deletions
diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py index 9e5b9bbf..282c0c31 100644 --- a/sleekxmpp/basexmpp.py +++ b/sleekxmpp/basexmpp.py @@ -68,7 +68,12 @@ class BaseXMPP(XMLStream): #: An identifier for the stream as given by the server. self.stream_id = None - #: The JabberID (JID) used by this connection. + #: The JabberID (JID) requested for this connection. + self.requested_jid = JID(jid) + + #: The JabberID (JID) used by this connection, + #: as set after session binding. This may even be a + #: different bare JID than what was requested. self.boundjid = JID(jid) self._expected_server_name = self.boundjid.host diff --git a/sleekxmpp/features/feature_mechanisms/mechanisms.py b/sleekxmpp/features/feature_mechanisms/mechanisms.py index c5b4c754..672f4fa6 100644 --- a/sleekxmpp/features/feature_mechanisms/mechanisms.py +++ b/sleekxmpp/features/feature_mechanisms/mechanisms.py @@ -92,13 +92,13 @@ class FeatureMechanisms(BasePlugin): values = required_values.union(optional_values) for value in values: if value == 'username': - result[value] = self.xmpp.boundjid.user + result[value] = self.xmpp.requested_jid.user elif value == 'password': result[value] = creds['password'] elif value == 'authzid': result[value] = creds.get('authzid', '') elif value == 'email': - jid = self.xmpp.boundjid.bare + jid = self.xmpp.requested_jid.bare result[value] = creds.get('email', jid) elif value == 'channel_binding': if sys.version_info >= (3, 3): @@ -106,9 +106,9 @@ class FeatureMechanisms(BasePlugin): else: result[value] = None elif value == 'host': - result[value] = self.xmpp.boundjid.domain + result[value] = self.xmpp.requested_jid.domain elif value == 'realm': - result[value] = self.xmpp.boundjid.domain + result[value] = self.xmpp.requested_jid.domain elif value == 'service-name': result[value] = self.xmpp._service_name elif value == 'service': |