diff options
author | Lance Stout <lancestout@gmail.com> | 2012-01-20 01:08:25 -0800 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-01-20 01:08:25 -0800 |
commit | 0d2125e737d28c8cf8aad0fd80b72179b8e7b914 (patch) | |
tree | e5eb0ec70adc71c8a0a1f79cf56437f2322d47a8 /sleekxmpp | |
parent | 02f400615334806fc531c149d85fe6f9a06d3e1e (diff) | |
download | slixmpp-0d2125e737d28c8cf8aad0fd80b72179b8e7b914.tar.gz slixmpp-0d2125e737d28c8cf8aad0fd80b72179b8e7b914.tar.bz2 slixmpp-0d2125e737d28c8cf8aad0fd80b72179b8e7b914.tar.xz slixmpp-0d2125e737d28c8cf8aad0fd80b72179b8e7b914.zip |
Add an extra config dict to store SASL credentials.
We'll need extra things beyond just a password, such as api_key.
Diffstat (limited to 'sleekxmpp')
-rw-r--r-- | sleekxmpp/clientxmpp.py | 13 | ||||
-rw-r--r-- | sleekxmpp/features/feature_mechanisms/mechanisms.py | 18 |
2 files changed, 24 insertions, 7 deletions
diff --git a/sleekxmpp/clientxmpp.py b/sleekxmpp/clientxmpp.py index 69e7db6c..a836cbd9 100644 --- a/sleekxmpp/clientxmpp.py +++ b/sleekxmpp/clientxmpp.py @@ -74,12 +74,15 @@ class ClientXMPP(BaseXMPP): BaseXMPP.__init__(self, jid, 'jabber:client') self.set_jid(jid) - self.password = password self.escape_quotes = escape_quotes self.plugin_config = plugin_config self.plugin_whitelist = plugin_whitelist self.default_port = 5222 + self.credentials = {} + + self.password = password + self.stream_header = "<stream:stream to='%s' %s %s version='1.0'>" % ( self.boundjid.host, "xmlns:stream='%s'" % self.stream_ns, @@ -119,6 +122,14 @@ class ClientXMPP(BaseXMPP): self.register_plugin('feature_mechanisms', pconfig={'use_mech': sasl_mech} if sasl_mech else None) + @property + def password(self): + return self.credentials.get('password', '') + + @password.setter + def password(self, value): + self.credentials['password'] = value + def connect(self, address=tuple(), reattempt=True, use_tls=True, use_ssl=False): """Connect to the XMPP server. diff --git a/sleekxmpp/features/feature_mechanisms/mechanisms.py b/sleekxmpp/features/feature_mechanisms/mechanisms.py index deff5d30..1148f06a 100644 --- a/sleekxmpp/features/feature_mechanisms/mechanisms.py +++ b/sleekxmpp/features/feature_mechanisms/mechanisms.py @@ -35,12 +35,18 @@ class feature_mechanisms(base_plugin): return 'starttls' in self.xmpp.features def basic_callback(mech, values): - if 'username' in values: - values['username'] = self.xmpp.boundjid.user - if 'password' in values: - values['password'] = self.xmpp.password - if 'access_token' in values: - values['access_token'] = self.xmpp.password + for value in values: + if value == 'username': + values['username'] = self.xmpp.boundjid.user + elif value == 'password': + values['password'] = self.xmpp.credentials['password'] + elif value == 'access_token': + if 'access_token' in self.xmpp.credentials: + values['access_token'] = self.xmpp.credentials['access_token'] + else: + values['access_token'] = self.xmpp.credentials['password'] + elif value in self.xmpp.credentials: + values[value] = self.xmpp.credentials[value] mech.fulfill(values) sasl_callback = self.config.get('sasl_callback', None) |