1
0
mirror of https://github.com/dkmstr/openuds.git synced 2025-03-13 08:58:35 +03:00

Removed support of tunnel for proxied SPICE connection (not supported)

This commit is contained in:
Adolfo Gómez García 2023-02-15 16:58:10 +01:00
parent cf0f6a0cce
commit 5907985719
No known key found for this signature in database
GPG Key ID: DD1ABF20724CDA23

View File

@ -100,7 +100,6 @@ class TSPICETransport(BaseSpiceTransport):
autoNewUsbShare = BaseSpiceTransport.autoNewUsbShare
smartCardRedirect = BaseSpiceTransport.smartCardRedirect
sslConnection = BaseSpiceTransport.SSLConnection
overridedProxy = BaseSpiceTransport.overridedProxy
def initialize(self, values: 'Module.ValuesType'):
if values:
@ -119,10 +118,12 @@ class TSPICETransport(BaseSpiceTransport):
password: str,
request: 'HttpRequest',
) -> typing.Tuple[str, str, typing.Mapping[str, typing.Any]]:
try:
userServiceInstance: typing.Any = userService.getInstance()
con: typing.Dict[str, typing.Any] = userServiceInstance.getConsoleConnection()
con: typing.Dict[
str, typing.Any
] = userServiceInstance.getConsoleConnection()
except Exception:
logger.exception('Error getting console connection data')
raise
@ -131,52 +132,36 @@ class TSPICETransport(BaseSpiceTransport):
# We MAY need two tickets, one for 'insecure' port an one for secure
ticket = ''
ticket_secure = ''
if 'proxy' not in con:
if con['port']:
ticket = TicketStore.create_for_tunnel(
userService=userService,
port=int(con['port']),
validity=self.tunnelWait.num() + 60, # Ticket overtime
)
if con['secure_port']:
ticket_secure = TicketStore.create_for_tunnel(
userService=userService,
port=int(con['secure_port']),
validity=self.tunnelWait.num() + 60, # Ticket overtime
)
r = RemoteViewerFile(
'127.0.0.1',
'{port}',
'{secure_port}',
con['ticket']['value'], # This is secure ticket from kvm, not UDS ticket
con.get('ca', self.serverCertificate.value.strip()),
con['cert_subject'],
fullscreen=self.fullScreen.isTrue(),
if 'proxy' in con:
logger.exception('Proxied SPICE tunnels are not suppoorted')
return super().getUDSTransportScript(
userService, transport, ip, os, user, password, request
)
else:
con['proxy'] = self.overridedProxy.value.strip() or con['proxy']
# extract host and port from proxy url
host, port = con['proxy'].split('://')[1].split(':')[0:2]
if con['port']:
ticket = TicketStore.create_for_tunnel(
userService=userService,
host=host,
port=int(port),
port=int(con['port']),
validity=self.tunnelWait.num() + 60, # Ticket overtime
)
r = RemoteViewerFile(
con.get('address', ''),
con.get('port', ''),
con.get('secure_port', ''),
con['ticket']['value'], # password
con.get('ca', self.serverCertificate.value.strip()),
con['cert_subject'],
fullscreen=self.fullScreen.isTrue(),
if con['secure_port']:
ticket_secure = TicketStore.create_for_tunnel(
userService=userService,
port=int(con['secure_port']),
validity=self.tunnelWait.num() + 60, # Ticket overtime
)
# Set proxy to 127.0.0.1:{port}
r.proxy = con['proxy'].split('://')[0] + '://127.0.0.1:{port}'
r = RemoteViewerFile(
'127.0.0.1',
'{port}',
'{secure_port}',
con['ticket']['value'], # This is secure ticket from kvm, not UDS ticket
con.get('ca', self.serverCertificate.value.strip()),
con['cert_subject'],
fullscreen=self.fullScreen.isTrue(),
)
r.usb_auto_share = self.usbShare.isTrue()
r.new_usb_auto_share = self.autoNewUsbShare.isTrue()