Add support for keys to HTTP component
parent
b33e9fe6d9
commit
9d8e077acc
|
@ -37,7 +37,8 @@ CONF_API_PASSWORD = "api_password"
|
|||
CONF_SERVER_HOST = "server_host"
|
||||
CONF_SERVER_PORT = "server_port"
|
||||
CONF_DEVELOPMENT = "development"
|
||||
CONF_CERTIFICATE = 'certificate'
|
||||
CONF_SSL_CERTIFICATE = 'ssl_certificate'
|
||||
CONF_SSL_KEY = 'ssl_key'
|
||||
|
||||
DATA_API_PASSWORD = 'api_password'
|
||||
|
||||
|
@ -59,12 +60,13 @@ def setup(hass, config):
|
|||
server_host = conf.get(CONF_SERVER_HOST, '0.0.0.0')
|
||||
server_port = conf.get(CONF_SERVER_PORT, SERVER_PORT)
|
||||
development = str(conf.get(CONF_DEVELOPMENT, "")) == "1"
|
||||
certificate = conf.get(CONF_CERTIFICATE)
|
||||
ssl_certificate = conf.get(CONF_SSL_CERTIFICATE)
|
||||
ssl_key = conf.get(CONF_SSL_KEY)
|
||||
|
||||
try:
|
||||
server = HomeAssistantHTTPServer(
|
||||
(server_host, server_port), RequestHandler, hass, api_password,
|
||||
development, certificate)
|
||||
development, ssl_certificate, ssl_key)
|
||||
except OSError:
|
||||
# If address already in use
|
||||
_LOGGER.exception("Error setting up HTTP server")
|
||||
|
@ -77,7 +79,7 @@ def setup(hass, config):
|
|||
|
||||
hass.http = server
|
||||
hass.config.api = rem.API(util.get_local_ip(), api_password, server_port,
|
||||
certificate is not None)
|
||||
ssl_certificate is not None)
|
||||
|
||||
return True
|
||||
|
||||
|
@ -92,7 +94,7 @@ class HomeAssistantHTTPServer(ThreadingMixIn, HTTPServer):
|
|||
|
||||
# pylint: disable=too-many-arguments
|
||||
def __init__(self, server_address, request_handler_class,
|
||||
hass, api_password, development, certificate):
|
||||
hass, api_password, development, ssl_certificate, ssl_key):
|
||||
super().__init__(server_address, request_handler_class)
|
||||
|
||||
self.server_address = server_address
|
||||
|
@ -108,8 +110,11 @@ class HomeAssistantHTTPServer(ThreadingMixIn, HTTPServer):
|
|||
if development:
|
||||
_LOGGER.info("running http in development mode")
|
||||
|
||||
if certificate is not None:
|
||||
self.socket = ssl.wrap_socket(self.socket, certfile=certificate)
|
||||
if ssl_certificate is not None:
|
||||
wrap_kwargs = {'certfile': ssl_certificate}
|
||||
if ssl_key is not None:
|
||||
wrap_kwargs['keyfile'] = ssl_key
|
||||
self.socket = ssl.wrap_socket(self.socket, **wrap_kwargs)
|
||||
|
||||
def start(self):
|
||||
""" Starts the HTTP server. """
|
||||
|
|
Loading…
Reference in New Issue