feat: 支持拉起本地客户端 (#10865)

* perf: 拉起本地客户端应用接口提供更多数据

* fix: rdp客户端拉起后窗口标题中文乱码

* perf: ssh客户端连接选项显示优化

* feat: 增加本地sftp客户端选项

* perf: 合并支持sftp协议

* perf: sftp与ssh使用相同端口

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
pull/11231/head
fit2bot 1 year ago committed by GitHub
parent 33ee84633f
commit f486c843bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -148,16 +148,25 @@ class RDPFileClientProtocolURLMixin:
if connect_method_dict is None: if connect_method_dict is None:
raise ValueError('Connect method not support: {}'.format(connect_method_name)) raise ValueError('Connect method not support: {}'.format(connect_method_name))
endpoint = self.get_smart_endpoint(
protocol=connect_method_dict['endpoint_protocol'],
asset=token.asset
)
data = { data = {
'id': str(token.id), 'id': str(token.id),
'value': token.value, 'name': f'{endpoint.host}-{str(token.id)[:18]}',
'protocol': token.protocol, 'protocol': token.protocol,
'host': endpoint.host,
'port': endpoint.get_port(token.asset, token.protocol),
'username': f'JMS-{str(token.id)}',
'value': token.value,
'command': '', 'command': '',
'file': {} 'file': {}
} }
if connect_method_name == NativeClient.mstsc or connect_method_dict['type'] == 'applet': if connect_method_name == NativeClient.mstsc or connect_method_dict['type'] == 'applet':
filename, content = self.get_rdp_file_info(token) filename, content = self.get_rdp_file_info(token)
filename = urllib.parse.unquote(filename)
data.update({ data.update({
'protocol': 'rdp', 'protocol': 'rdp',
'file': { 'file': {
@ -166,10 +175,6 @@ class RDPFileClientProtocolURLMixin:
} }
}) })
else: else:
endpoint = self.get_smart_endpoint(
protocol=connect_method_dict['endpoint_protocol'],
asset=token.asset
)
cmd = NativeClient.get_launch_command(connect_method_name, token, endpoint) cmd = NativeClient.get_launch_command(connect_method_name, token, endpoint)
data.update({'command': cmd}) data.update({'command': cmd})
return data return data

@ -41,6 +41,8 @@ class Endpoint(JMSBaseModel):
protocol == Protocol.oracle: protocol == Protocol.oracle:
port = db_port_manager.get_port_by_db(target_instance) port = db_port_manager.get_port_by_db(target_instance)
else: else:
if protocol == Protocol.sftp:
protocol = Protocol.ssh
port = getattr(self, f'{protocol}_port', 0) port = getattr(self, f'{protocol}_port', 0)
return port return port

Loading…
Cancel
Save