Enable certificate verification and allow non-encrypted communication (#1763)
parent
9d848731d9
commit
4a16d8064d
|
@ -10,7 +10,10 @@ from homeassistant.components.notify import (
|
|||
ATTR_TITLE, DOMAIN, BaseNotificationService)
|
||||
from homeassistant.helpers import validate_config
|
||||
|
||||
REQUIREMENTS = ['sleekxmpp==1.3.1', 'dnspython3==1.12.0']
|
||||
REQUIREMENTS = ['sleekxmpp==1.3.1',
|
||||
'dnspython3==1.12.0',
|
||||
'pyasn1==0.1.9',
|
||||
'pyasn1-modules==0.0.8']
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -22,20 +25,23 @@ def get_service(hass, config):
|
|||
_LOGGER):
|
||||
return None
|
||||
|
||||
return XmppNotificationService(config['sender'],
|
||||
config['password'],
|
||||
config['recipient'])
|
||||
return XmppNotificationService(
|
||||
config.get('sender'),
|
||||
config.get('password'),
|
||||
config.get('recipient'),
|
||||
config.get('tls', True))
|
||||
|
||||
|
||||
# pylint: disable=too-few-public-methods
|
||||
class XmppNotificationService(BaseNotificationService):
|
||||
"""Implement the notification service for Jabber (XMPP)."""
|
||||
|
||||
def __init__(self, sender, password, recipient):
|
||||
def __init__(self, sender, password, recipient, tls):
|
||||
"""Initialize the service."""
|
||||
self._sender = sender
|
||||
self._password = password
|
||||
self._recipient = recipient
|
||||
self._tls = tls
|
||||
|
||||
def send_message(self, message="", **kwargs):
|
||||
"""Send a message to a user."""
|
||||
|
@ -43,10 +49,10 @@ class XmppNotificationService(BaseNotificationService):
|
|||
data = "{}: {}".format(title, message) if title else message
|
||||
|
||||
send_message(self._sender + '/home-assistant', self._password,
|
||||
self._recipient, data)
|
||||
self._recipient, self._tls, data)
|
||||
|
||||
|
||||
def send_message(sender, password, recipient, message):
|
||||
def send_message(sender, password, recipient, use_tls, message):
|
||||
"""Send a message over XMPP."""
|
||||
import sleekxmpp
|
||||
|
||||
|
@ -59,11 +65,11 @@ def send_message(sender, password, recipient, message):
|
|||
|
||||
logging.basicConfig(level=logging.ERROR)
|
||||
|
||||
self.use_tls = True
|
||||
self.use_tls = use_tls
|
||||
self.use_ipv6 = False
|
||||
self.add_event_handler('failed_auth', self.check_credentials)
|
||||
self.add_event_handler('session_start', self.start)
|
||||
self.connect()
|
||||
self.connect(use_tls=self.use_tls, use_ssl=False)
|
||||
self.process()
|
||||
|
||||
def start(self, event):
|
||||
|
|
|
@ -177,6 +177,12 @@ py-cpuinfo==0.2.3
|
|||
# homeassistant.components.rfxtrx
|
||||
pyRFXtrx==0.6.5
|
||||
|
||||
# homeassistant.components.notify.xmpp
|
||||
pyasn1-modules==0.0.8
|
||||
|
||||
# homeassistant.components.notify.xmpp
|
||||
pyasn1==0.1.9
|
||||
|
||||
# homeassistant.components.media_player.cast
|
||||
pychromecast==0.7.2
|
||||
|
||||
|
|
Loading…
Reference in New Issue