浏览代码

Resolve "reverse proxy patch"

Eric Tröbs 3 年之前
父节点
当前提交
d773bbb603
共有 4 个文件被更改,包括 13 次插入9 次删除
  1. 1 4
      app.py
  2. 8 3
      pycs/frontend/WebServer.py
  3. 2 1
      settings.json
  4. 2 1
      webui/src/main.js

+ 1 - 4
app.py

@@ -13,9 +13,6 @@ if __name__ == '__main__':
     with open('settings.json', 'r') as file:
         settings = load(file)
 
-    host = settings['host']
-    port = settings['port']
-
     # create projects folder
     if not path.exists('projects/'):
         mkdir('projects/')
@@ -30,4 +27,4 @@ if __name__ == '__main__':
 
     # start web server
     print('- start web server')
-    web_server = WebServer(host, port, database, jobs)
+    web_server = WebServer(settings, database, jobs)

+ 8 - 3
pycs/frontend/WebServer.py

@@ -53,7 +53,7 @@ class WebServer:
     """
 
     # pylint: disable=line-too-long
-    def __init__(self, host, port, database: Database, jobs: JobRunner):
+    def __init__(self, settings: dict, database: Database, jobs: JobRunner):
         # initialize web server
         if exists('webui/index.html'):
             print('production build')
@@ -71,7 +71,12 @@ class WebServer:
                 static_files[svg_path[5:]] = {'content_type': 'image/svg+xml', 'filename': svg_path}
 
             # create service objects
-            self.__sio = socketio.Server(async_mode='eventlet')
+            if len(settings['allowedOrigins']) > 0:
+                origins = settings['allowedOrigins']
+                self.__sio = socketio.Server(cors_allowed_origins=origins, async_mode='eventlet')
+            else:
+                self.__sio = socketio.Server(async_mode='eventlet')
+
             self.__flask = Flask(__name__)
             self.__app = socketio.WSGIApp(self.__sio, self.__flask, static_files=static_files)
 
@@ -269,4 +274,4 @@ class WebServer:
         )
 
         # finally start web server
-        eventlet.wsgi.server(eventlet.listen((host, port)), self.__app)
+        eventlet.wsgi.server(eventlet.listen((settings['host'], settings['port'])), self.__app)

+ 2 - 1
settings.json

@@ -1,4 +1,5 @@
 {
   "host": "",
-  "port": 5000
+  "port": 5000,
+  "allowedOrigins": []
 }

+ 2 - 1
webui/src/main.js

@@ -9,7 +9,8 @@ import App from './App.vue'
 import io from "socket.io-client";
 
 // establish socket connection
-const self = window.location.protocol + '//' + window.location.hostname + ':5000';
+const host = Vue.config.devtools ? window.location.hostname + ':5000' : window.location.host;
+const self = window.location.protocol + '//' + host;
 const sio = io(self);
 
 // initialize vue.js