mirror of https://github.com/jumpserver/jumpserver
perf: 修改 connect token
parent
426900145e
commit
6593648554
|
@ -20,7 +20,7 @@ from common.utils.django import get_request_os
|
||||||
from orgs.mixins.api import RootOrgViewMixin
|
from orgs.mixins.api import RootOrgViewMixin
|
||||||
from perms.models import ActionChoices
|
from perms.models import ActionChoices
|
||||||
from terminal.const import NativeClient
|
from terminal.const import NativeClient
|
||||||
from terminal.models import EndpointRule
|
from terminal.models import EndpointRule, Applet
|
||||||
from ..models import ConnectionToken
|
from ..models import ConnectionToken
|
||||||
from ..serializers import (
|
from ..serializers import (
|
||||||
ConnectionTokenSerializer, ConnectionTokenSecretSerializer,
|
ConnectionTokenSerializer, ConnectionTokenSecretSerializer,
|
||||||
|
@ -33,13 +33,34 @@ class RDPFileClientProtocolURLMixin:
|
||||||
request: Request
|
request: Request
|
||||||
get_serializer: callable
|
get_serializer: callable
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def set_applet_info(token, rdp_options):
|
||||||
|
# remote-app
|
||||||
|
applet = Applet.objects.filter(name=token.connect_method).first()
|
||||||
|
if not applet:
|
||||||
|
return rdp_options
|
||||||
|
|
||||||
|
cmdline = {
|
||||||
|
'app_name': applet.name,
|
||||||
|
'user_id': str(token.user.id),
|
||||||
|
'asset_id': str(token.asset.id),
|
||||||
|
'token_id': token.id
|
||||||
|
}
|
||||||
|
|
||||||
|
app = '||tinker'
|
||||||
|
rdp_options['remoteapplicationmode:i'] = '1'
|
||||||
|
rdp_options['alternate shell:s'] = app
|
||||||
|
rdp_options['remoteapplicationprogram:s'] = app
|
||||||
|
rdp_options['remoteapplicationname:s'] = app
|
||||||
|
|
||||||
|
cmdline_b64 = base64.b64encode(json.dumps(cmdline).encode()).decode()
|
||||||
|
rdp_options['remoteapplicationcmdline:s'] = cmdline_b64
|
||||||
|
return rdp_options
|
||||||
|
|
||||||
def get_rdp_file_info(self, token: ConnectionToken):
|
def get_rdp_file_info(self, token: ConnectionToken):
|
||||||
rdp_options = {
|
rdp_options = {
|
||||||
'full address:s': '',
|
'full address:s': '',
|
||||||
'username:s': '',
|
'username:s': '',
|
||||||
# 'screen mode id:i': '1',
|
|
||||||
# 'desktopwidth:i': '1280',
|
|
||||||
# 'desktopheight:i': '800',
|
|
||||||
'use multimon:i': '0',
|
'use multimon:i': '0',
|
||||||
'session bpp:i': '32',
|
'session bpp:i': '32',
|
||||||
'audiomode:i': '0',
|
'audiomode:i': '0',
|
||||||
|
@ -60,11 +81,6 @@ class RDPFileClientProtocolURLMixin:
|
||||||
'bookmarktype:i': '3',
|
'bookmarktype:i': '3',
|
||||||
'use redirection server name:i': '0',
|
'use redirection server name:i': '0',
|
||||||
'smart sizing:i': '1',
|
'smart sizing:i': '1',
|
||||||
# 'drivestoredirect:s': '*',
|
|
||||||
# 'domain:s': ''
|
|
||||||
# 'alternate shell:s:': '||MySQLWorkbench',
|
|
||||||
# 'remoteapplicationname:s': 'Firefox',
|
|
||||||
# 'remoteapplicationcmdline:s': '',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 设置磁盘挂载
|
# 设置磁盘挂载
|
||||||
|
@ -97,16 +113,11 @@ class RDPFileClientProtocolURLMixin:
|
||||||
rdp_options['session bpp:i'] = os.getenv('JUMPSERVER_COLOR_DEPTH', '32')
|
rdp_options['session bpp:i'] = os.getenv('JUMPSERVER_COLOR_DEPTH', '32')
|
||||||
rdp_options['audiomode:i'] = self.parse_env_bool('JUMPSERVER_DISABLE_AUDIO', 'false', '2', '0')
|
rdp_options['audiomode:i'] = self.parse_env_bool('JUMPSERVER_DISABLE_AUDIO', 'false', '2', '0')
|
||||||
|
|
||||||
if token.asset:
|
# 设置远程应用
|
||||||
name = token.asset.name
|
self.set_applet_info(token, rdp_options)
|
||||||
# remote-app
|
|
||||||
# app = '||jmservisor'
|
# 文件名
|
||||||
# rdp_options['remoteapplicationmode:i'] = '1'
|
name = token.asset.name
|
||||||
# rdp_options['alternate shell:s'] = app
|
|
||||||
# rdp_options['remoteapplicationprogram:s'] = app
|
|
||||||
# rdp_options['remoteapplicationname:s'] = name
|
|
||||||
else:
|
|
||||||
name = '*'
|
|
||||||
prefix_name = f'{token.user.username}-{name}'
|
prefix_name = f'{token.user.username}-{name}'
|
||||||
filename = self.get_connect_filename(prefix_name)
|
filename = self.get_connect_filename(prefix_name)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue