From 537bb8439bd41cbd9fec5f400e681dfb7956f4e1 Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Sat, 24 Oct 2020 18:04:56 -0400 Subject: [PATCH] Use ssl for flask server (#319) * Use ssl for flask server * Use window location protocol to get https or http in frontend * Make use_ssl configurable * Remove log port in frontend --- docker/config.ini | 1 + frontend/squeak-node-frontend/src/squeakclient/requests.js | 5 +---- squeakserver/admin/squeak_admin_web_service.py | 4 +++- squeakserver/main.py | 5 +++++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/docker/config.ini b/docker/config.ini index 5bd0fa60..577b585b 100644 --- a/docker/config.ini +++ b/docker/config.ini @@ -32,6 +32,7 @@ rpc_port=8994 enabled=true host=0.0.0.0 port=12994 +use_ssl=false [postgresql] host=db diff --git a/frontend/squeak-node-frontend/src/squeakclient/requests.js b/frontend/squeak-node-frontend/src/squeakclient/requests.js index 3aa3fb96..538122f6 100644 --- a/frontend/squeak-node-frontend/src/squeakclient/requests.js +++ b/frontend/squeak-node-frontend/src/squeakclient/requests.js @@ -77,10 +77,7 @@ import { } from "../proto/squeak_admin_pb" -export let web_host_port = 'http://' + window.location.hostname + ':' + window.location.port; - -console.log("web_host_port:"); -console.log(web_host_port); +export let web_host_port = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port; function makeRequest(route, request, handleResponse) { diff --git a/squeakserver/admin/squeak_admin_web_service.py b/squeakserver/admin/squeak_admin_web_service.py index 8c726746..8aa485db 100644 --- a/squeakserver/admin/squeak_admin_web_service.py +++ b/squeakserver/admin/squeak_admin_web_service.py @@ -297,9 +297,10 @@ def create_app(handler): class SqueakAdminWebServer(): - def __init__(self, host, port, handler): + def __init__(self, host, port, use_ssl, handler): self.host = host self.port = port + self.use_ssl = use_ssl self.handler = handler self.app = create_app(handler) @@ -308,4 +309,5 @@ class SqueakAdminWebServer(): self.host, self.port, debug=False, + ssl_context='adhoc' if self.use_ssl else None, ) diff --git a/squeakserver/main.py b/squeakserver/main.py index c7b87fba..e3ffb2c0 100644 --- a/squeakserver/main.py +++ b/squeakserver/main.py @@ -65,6 +65,7 @@ def load_admin_web_server(config, handler) -> SqueakAdminWebServer: return SqueakAdminWebServer( config["webadmin"]["host"], config["webadmin"]["port"], + config["webadmin"].getboolean("use_ssl"), handler, ) @@ -156,6 +157,10 @@ def load_admin_web_server_enabled(config): return config["webadmin"].getboolean("enabled") +def load_admin_web_server_use_ssl(config): + return config["webadmin"].getboolean("use_ssl") + + def start_admin_web_server(admin_web_server): logger.info("Calling start_admin_web_server...") thread = threading.Thread(