From a8eb9f3e79f85d9e3f063762e7019a4d2dbf72eb Mon Sep 17 00:00:00 2001 From: ibuler Date: Sat, 27 Feb 2016 00:19:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(jlog,=20websocket=20url)=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dws=E4=BD=BF=E7=94=A8=20ws=E5=8D=8F=E8=AE=AE=E8=BF=98?= =?UTF-8?q?=E6=98=AFwss=E5=8D=8F=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 不再需要浏览器判断什么协议,需要在jumpserver.conf注明 ref #63 --- connect.py | 1 - jlog/views.py | 6 +++--- jumpserver.conf | 6 ++---- jumpserver/settings.py | 2 +- jumpserver/views.py | 3 +-- templates/jlog/log_online.html | 9 ++------- templates/jlog/web_terminal.html | 7 +------ 7 files changed, 10 insertions(+), 24 deletions(-) diff --git a/connect.py b/connect.py index c742e6293..603f57f60 100755 --- a/connect.py +++ b/connect.py @@ -824,7 +824,6 @@ def main(): except IndexError, e: color_print(e) time.sleep(5) - pass if __name__ == '__main__': main() diff --git a/jlog/views.py b/jlog/views.py index 61ab19ddc..0d49269b6 100644 --- a/jlog/views.py +++ b/jlog/views.py @@ -9,7 +9,7 @@ from django.http import HttpResponseNotFound from jlog.log_api import renderTemplate from jlog.models import Log, ExecLog, FileLog -from jumpserver.settings import WEB_SOCKET_HOST +from jumpserver.settings import WEB_SOCKET_URL @require_role('admin') @@ -66,8 +66,8 @@ def log_list(request, offset): contact_list, p, contacts, page_range, current_page, show_first, show_end = pages(posts, request) - web_monitor_uri = '%s/monitor' % WEB_SOCKET_HOST - web_kill_uri = '/kill' + web_monitor_url = '%s/monitor' % WEB_SOCKET_URL + web_kill_url = '/kill' session_id = request.session.session_key return render_to_response('jlog/log_%s.html' % offset, locals(), context_instance=RequestContext(request)) diff --git a/jumpserver.conf b/jumpserver.conf index f184a246f..2e1668a6d 100644 --- a/jumpserver.conf +++ b/jumpserver.conf @@ -1,5 +1,6 @@ [base] url = http://192.168.244.129 +websocket_url = ws://192.168.244.129 key = 88aaaf7ffe3c6c04 log = debug @@ -10,14 +11,11 @@ user = jumpserver password = mysql234 database = jumpserver -[websocket] -web_socket_host = 192.168.244.129:3000 - [mail] mail_enable = 1 email_host = smtp.qq.com email_port = 25 email_host_user = xxxxxxxx@qq.com email_host_password = xxxxxx -email_use_tls = False +email_use_tls = True diff --git a/jumpserver/settings.py b/jumpserver/settings.py index d1c8a8f40..a8c0d4dc3 100644 --- a/jumpserver/settings.py +++ b/jumpserver/settings.py @@ -41,7 +41,7 @@ SSH_KEY_DIR = os.path.join(BASE_DIR, 'keys/role_keys') KEY = config.get('base', 'key') URL = config.get('base', 'url') LOG_LEVEL = config.get('base', 'log') -WEB_SOCKET_HOST = config.get('websocket', 'web_socket_host') +WEB_SOCKET_URL = config.get('base', 'websocket_url') # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ diff --git a/jumpserver/views.py b/jumpserver/views.py index 5768c656e..ab97a66e8 100644 --- a/jumpserver/views.py +++ b/jumpserver/views.py @@ -356,8 +356,7 @@ def web_terminal(request): if asset: print asset hostname = asset.hostname - # web_terminal_uri = '%s/ws/terminal?id=%s&role=%s' % (WEB_SOCKET_HOST, asset_id, role_name) - web_terminal_uri = '/ws/terminal?id=%s&role=%s' % (asset_id, role_name) + web_terminal_url = '%s/ws/terminal?id=%s&role=%s' % (WEB_SOCKET_URL, asset_id, role_name) return render_to_response('jlog/web_terminal.html', locals()) diff --git a/templates/jlog/log_online.html b/templates/jlog/log_online.html index 9d52ecfe8..c17c92129 100644 --- a/templates/jlog/log_online.html +++ b/templates/jlog/log_online.html @@ -136,13 +136,8 @@ {# })#} {# });#} function init(obj){ - var protocol = "ws://"; - if (window.location.protocol == 'https:') { - protocol = 'wss://'; - } - var file_path = obj.attr('file_path'); - var wsUri = protocol + '{{ web_monitor_uri }}'; + var wsUri = '{{ web_monitor_url }}'; var socket = new WebSocket(wsUri + '?file_path=' + file_path); var term = new Terminal({ @@ -211,7 +206,7 @@ function cut(num, login_type){ console.log(login_type); if (login_type=='web'){ - var g_url = '{{ web_kill_uri }}' + '?id=' + num; + var g_url = '{{ web_kill_url }}' + '?id=' + num; } else { var g_url = "{% url 'log_kill' %}?id=" + num; } diff --git a/templates/jlog/web_terminal.html b/templates/jlog/web_terminal.html index 547002f19..3f4683399 100644 --- a/templates/jlog/web_terminal.html +++ b/templates/jlog/web_terminal.html @@ -43,12 +43,7 @@ } WSSHClient.prototype.connect = function(options) { - var protocol = "ws://"; - if (window.location.protocol == 'https:') { - protocol = 'wss://'; - } - - var endpoint = protocol + document.URL.match(RegExp('//(.*?)/'))[1] + '{{ web_terminal_uri }}'; + var endpoint = '{{ web_terminal_url }}'; if (window.WebSocket) { this._connection = new WebSocket(endpoint);