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:
		| @@ -39,6 +39,8 @@ class feature_mechanisms(base_plugin): | ||||
|                 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 | ||||
|             mech.fulfill(values) | ||||
|  | ||||
|         sasl_callback = self.config.get('sasl_callback', None) | ||||
|   | ||||
| @@ -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
	 Lance Stout
					Lance Stout