From 74a93fe7648c38499ea988b5720745e8e04f999a Mon Sep 17 00:00:00 2001 From: bremor <34525505+bremor@users.noreply.github.com> Date: Fri, 14 Dec 2018 18:42:01 +1100 Subject: [PATCH] Synology chat add verify ssl (#19276) * Update synology_chat.py * Added verify_ssl option to notify.synology_chat Python requests will verify ssl by default, this configuration options allows the user to specify if they want to verify ssl or not. Non breaking change, default is True - do verify ssl. --- homeassistant/components/notify/synology_chat.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/notify/synology_chat.py b/homeassistant/components/notify/synology_chat.py index 3fbb7823dc0..922631b4045 100644 --- a/homeassistant/components/notify/synology_chat.py +++ b/homeassistant/components/notify/synology_chat.py @@ -12,13 +12,14 @@ import voluptuous as vol from homeassistant.components.notify import ( BaseNotificationService, PLATFORM_SCHEMA, ATTR_DATA) -from homeassistant.const import CONF_RESOURCE +from homeassistant.const import CONF_RESOURCE, CONF_VERIFY_SSL import homeassistant.helpers.config_validation as cv ATTR_FILE_URL = 'file_url' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_RESOURCE): cv.url, + vol.Optional(CONF_VERIFY_SSL, default=True): cv.boolean, }) _LOGGER = logging.getLogger(__name__) @@ -27,16 +28,18 @@ _LOGGER = logging.getLogger(__name__) def get_service(hass, config, discovery_info=None): """Get the Synology Chat notification service.""" resource = config.get(CONF_RESOURCE) + verify_ssl = config.get(CONF_VERIFY_SSL) - return SynologyChatNotificationService(resource) + return SynologyChatNotificationService(resource, verify_ssl) class SynologyChatNotificationService(BaseNotificationService): """Implementation of a notification service for Synology Chat.""" - def __init__(self, resource): + def __init__(self, resource, verify_ssl): """Initialize the service.""" self._resource = resource + self._verify_ssl = verify_ssl def send_message(self, message="", **kwargs): """Send a message to a user.""" @@ -52,7 +55,8 @@ class SynologyChatNotificationService(BaseNotificationService): to_send = 'payload={}'.format(json.dumps(data)) - response = requests.post(self._resource, data=to_send, timeout=10) + response = requests.post(self._resource, data=to_send, timeout=10, + verify=self._verify_ssl) if response.status_code not in (200, 201): _LOGGER.exception(