Add support for MSN with X-MESSENGER-OAUTH2 SASL support.

NOTE: This requires already having the access token. It does NOT
perform any OAuth requests.
This commit is contained in:
Lance Stout
2012-01-06 23:31:58 -05:00
parent 8ef7188dae
commit c578ddeb1a
4 changed files with 33 additions and 2 deletions

View File

@@ -25,15 +25,25 @@ class Auth(StanzaBase):
interfaces = set(('mechanism', 'value'))
plugin_attrib = name
#: Some SASL mechs require sending values as is,
#: without converting base64.
plain_mechs = set(['X-MESSENGER-OAUTH2'])
def setup(self, xml):
StanzaBase.setup(self, xml)
self.xml.tag = self.tag_name()
def get_value(self):
return base64.b64decode(bytes(self.xml.text))
if not self['mechanism'] in self.plain_mechs:
return base64.b64decode(bytes(self.xml.text))
else:
return self.xml.text
def set_value(self, values):
self.xml.text = bytes(base64.b64encode(values)).decode('utf-8')
if not self['mechanism'] in self.plain_mechs:
self.xml.text = bytes(base64.b64encode(values)).decode('utf-8')
else:
self.xml.text = values
def del_value(self):
self.xml.text = ''