Commit f6ca83c2 authored by BaiJiangJie's avatar BaiJiangJie

Merge branch 'dev' of https://github.com/jumpserver/coco into dev

parents 639f8786 f46cd8cd
...@@ -110,7 +110,8 @@ class SSHConnection: ...@@ -110,7 +110,8 @@ class SSHConnection:
ssh.connect(gateway.ip, port=gateway.port, ssh.connect(gateway.ip, port=gateway.port,
username=gateway.username, username=gateway.username,
password=gateway.password, password=gateway.password,
pkey=gateway.private_key_obj) pkey=gateway.private_key_obj,
timeout=TIMEOUT)
except(paramiko.AuthenticationException, except(paramiko.AuthenticationException,
paramiko.BadAuthenticationType, paramiko.BadAuthenticationType,
SSHException): SSHException):
......
...@@ -34,6 +34,10 @@ class BaseNamespace(Namespace): ...@@ -34,6 +34,10 @@ class BaseNamespace(Namespace):
user = app_service.check_user_cookie(session_id, csrf_token) user = app_service.check_user_cookie(session_id, csrf_token)
if token: if token:
user = app_service.check_user_with_token(token) user = app_service.check_user_with_token(token)
msg = "Get current user: session_id<{}> token<{}> => {}".format(
session_id, token, user
)
logger.debug(msg)
return user return user
...@@ -149,27 +153,30 @@ class ProxyNamespace(BaseNamespace): ...@@ -149,27 +153,30 @@ class ProxyNamespace(BaseNamespace):
token = message.get('token', None) token = message.get('token', None)
secret = message.get('secret', None) secret = message.get('secret', None)
win_size = message.get('size', (80, 24)) win_size = message.get('size', (80, 24))
room = self.new_room() room = self.new_room()
self.emit('room', {'room': room["id"], 'secret': secret}) self.emit('room', {'room': room["id"], 'secret': secret})
join_room(room['id'])
if not token or not secret: if not token or not secret:
logger.debug("Token or secret is None: {}".format(token, secret)) msg = "Token or secret is None: {} {}".format(token, secret)
self.emit('data', {'data': "\nOperation not permitted!", logger.error(msg)
'room': room["id"]}) self.emit('data', {'data': msg, 'room': room['id']}, room=room['id'])
self.emit('disconnect') self.emit('disconnect')
return None return
info = app_service.get_token_asset(token) info = app_service.get_token_asset(token)
logger.debug(info) logger.debug(info)
if not info: if not info:
logger.debug("Token info is None") msg = "Token info is none, maybe token expired"
self.emit('data', {'data': "\nOperation not permitted!", logger.error(msg)
'room': room["id"]}) self.emit('data', {'data': msg, 'room': room['id']}, room=room['id'])
self.emit('disconnect') self.emit('disconnect')
return None return None
user_id = info.get('user', None) user_id = info.get('user', None)
self.current_user = app_service.get_user_profile(user_id) self.current_user = app_service.get_user_profile(user_id)
room["request"].user = self.current_user # room["request"].user = self.current_user
self.on_host({ self.on_host({
'secret': secret, 'secret': secret,
'uuid': info['asset'], 'uuid': info['asset'],
...@@ -203,7 +210,7 @@ class ProxyNamespace(BaseNamespace): ...@@ -203,7 +210,7 @@ class ProxyNamespace(BaseNamespace):
def on_logout(self, room_id): def on_logout(self, room_id):
room = self.connections.get(request.sid, {}).get(room_id) room = self.connections.get(request.sid, {}).get(room_id)
if room: if room:
room["proxy"].close() room.get("proxy") and room["proxy"].close()
self.close_room(room_id) self.close_room(room_id)
del self.connections[request.sid][room_id] del self.connections[request.sid][room_id]
del room del room
......
...@@ -18,7 +18,7 @@ idna==2.6 ...@@ -18,7 +18,7 @@ idna==2.6
itsdangerous==0.24 itsdangerous==0.24
Jinja2==2.10 Jinja2==2.10
jmespath==0.9.3 jmespath==0.9.3
jms-storage==0.0.17 jms-storage==0.0.18
jumpserver-python-sdk==0.0.43 jumpserver-python-sdk==0.0.43
MarkupSafe==1.0 MarkupSafe==1.0
oss2==2.4.0 oss2==2.4.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment