mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-06 11:36:32 +00:00
try fix tornado connection timeout
This commit is contained in:
parent
5ab882ae66
commit
054edeefb6
@ -7,8 +7,10 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import os.path
|
import os.path
|
||||||
import threading
|
import threading
|
||||||
import datetime
|
|
||||||
import re
|
import re
|
||||||
|
import functools
|
||||||
|
|
||||||
|
from django.core.signals import request_started, request_finished
|
||||||
|
|
||||||
import tornado.ioloop
|
import tornado.ioloop
|
||||||
import tornado.options
|
import tornado.options
|
||||||
@ -20,10 +22,10 @@ import tornado.httpclient
|
|||||||
from tornado.websocket import WebSocketClosedError
|
from tornado.websocket import WebSocketClosedError
|
||||||
|
|
||||||
from tornado.options import define, options
|
from tornado.options import define, options
|
||||||
from pyinotify import WatchManager, Notifier, ProcessEvent, IN_DELETE, IN_CREATE, IN_MODIFY, AsyncNotifier
|
from pyinotify import WatchManager, ProcessEvent, IN_DELETE, IN_CREATE, IN_MODIFY, AsyncNotifier
|
||||||
import select
|
import select
|
||||||
|
|
||||||
from connect import Tty, User, Asset, PermRole, logger, get_object, PermRole, gen_resource
|
from connect import Tty, User, Asset, PermRole, logger, get_object, gen_resource
|
||||||
from connect import TtyLog, Log, Session, user_have_perm, get_group_user_perm, MyRunner, ExecLog
|
from connect import TtyLog, Log, Session, user_have_perm, get_group_user_perm, MyRunner, ExecLog
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -36,6 +38,16 @@ define("port", default=3000, help="run on the given port", type=int)
|
|||||||
define("host", default='0.0.0.0', help="run port on given host", type=str)
|
define("host", default='0.0.0.0', help="run port on given host", type=str)
|
||||||
|
|
||||||
|
|
||||||
|
def django_request_support(func):
|
||||||
|
@functools.wraps(func)
|
||||||
|
def _deco(*args, **kwargs):
|
||||||
|
request_started.send_robust()
|
||||||
|
response = func(*args, **kwargs)
|
||||||
|
request_finished.send_robust()
|
||||||
|
return response
|
||||||
|
return _deco
|
||||||
|
|
||||||
|
|
||||||
def require_auth(role='user'):
|
def require_auth(role='user'):
|
||||||
def _deco(func):
|
def _deco(func):
|
||||||
def _deco2(request, *args, **kwargs):
|
def _deco2(request, *args, **kwargs):
|
||||||
@ -56,6 +68,7 @@ def require_auth(role='user'):
|
|||||||
request.user = user
|
request.user = user
|
||||||
if role == 'admin':
|
if role == 'admin':
|
||||||
if user.role in ['SU', 'GA']:
|
if user.role in ['SU', 'GA']:
|
||||||
|
request_finished.send_robust()
|
||||||
return func(request, *args, **kwargs)
|
return func(request, *args, **kwargs)
|
||||||
logger.debug('Websocket: user [ %s ] is not admin.' % user.username)
|
logger.debug('Websocket: user [ %s ] is not admin.' % user.username)
|
||||||
else:
|
else:
|
||||||
@ -67,6 +80,7 @@ def require_auth(role='user'):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
logger.warning('Websocket: Request auth failed.')
|
logger.warning('Websocket: Request auth failed.')
|
||||||
|
|
||||||
return _deco2
|
return _deco2
|
||||||
return _deco
|
return _deco
|
||||||
|
|
||||||
@ -127,6 +141,7 @@ class MonitorHandler(tornado.websocket.WebSocketHandler):
|
|||||||
def check_origin(self, origin):
|
def check_origin(self, origin):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@django_request_support
|
||||||
@require_auth('admin')
|
@require_auth('admin')
|
||||||
def open(self):
|
def open(self):
|
||||||
# 获取监控的path
|
# 获取监控的path
|
||||||
@ -178,6 +193,7 @@ class WebTty(Tty):
|
|||||||
|
|
||||||
|
|
||||||
class WebTerminalKillHandler(tornado.web.RequestHandler):
|
class WebTerminalKillHandler(tornado.web.RequestHandler):
|
||||||
|
@django_request_support
|
||||||
@require_auth('admin')
|
@require_auth('admin')
|
||||||
def get(self):
|
def get(self):
|
||||||
ws_id = self.get_argument('id')
|
ws_id = self.get_argument('id')
|
||||||
@ -207,6 +223,7 @@ class ExecHandler(tornado.websocket.WebSocketHandler):
|
|||||||
def check_origin(self, origin):
|
def check_origin(self, origin):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@django_request_support
|
||||||
@require_auth('user')
|
@require_auth('user')
|
||||||
def open(self):
|
def open(self):
|
||||||
logger.debug('Websocket: Open exec request')
|
logger.debug('Websocket: Open exec request')
|
||||||
@ -287,6 +304,7 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler):
|
|||||||
def check_origin(self, origin):
|
def check_origin(self, origin):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@django_request_support
|
||||||
@require_auth('user')
|
@require_auth('user')
|
||||||
def open(self):
|
def open(self):
|
||||||
logger.debug('Websocket: Open request')
|
logger.debug('Websocket: Open request')
|
||||||
|
Loading…
Reference in New Issue
Block a user