diff --git a/src/octoprint/server/__init__.py b/src/octoprint/server/__init__.py index 4d86441d..3063de22 100644 --- a/src/octoprint/server/__init__.py +++ b/src/octoprint/server/__init__.py @@ -256,7 +256,15 @@ class Server(): settings().get(["server", "reverseProxy", "prefixScheme"]) ) - app.secret_key = "k3PuVYgtxNm8DXKKTw2nWmFQQun9qceV" + secret_key = settings().get(["server", "secretKey"]) + if not secret_key: + import string + from random import choice + chars = string.ascii_lowercase + string.ascii_uppercase + string.digits + secret_key = "".join(choice(chars) for _ in xrange(32)) + settings().set(["server", "secretKey"], secret_key) + settings().save() + app.secret_key = secret_key loginManager = LoginManager() loginManager.session_protection = "strong" loginManager.user_callback = load_user diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index 8e99d797..aabac51c 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -41,6 +41,7 @@ default_settings = { "host": "0.0.0.0", "port": 5000, "firstRun": True, + "secretKey": None, "reverseProxy": { "prefixHeader": "X-Script-Name", "schemeHeader": "X-Scheme",