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:
@@ -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 = ''
|
||||
|
||||
Reference in New Issue
Block a user