Skip to content

Commit 2bff743

Browse files
committed
Add VRDP Security Method selection to the Remote Display settings
When Oracle Extension Pack is installed, VRDP server can be configured to use encryption. This setting was previously missing. When Negotiate (default) or TLS is selected, a private key and a certificate should be auto-generated by VirtualBox in the VM directory. This change does not affect open source distributions using VNC. Taken from https://github.com/thedisbo1125/vboxwebmgr Issue #366
1 parent 41d1405 commit 2bff743

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

endpoints/lib/vboxconnector.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ public function remote_getEvents($args) {
500500
'enabled' => $vrde->enabled,
501501
'ports' => $vrde->getVRDEProperty('TCP/Ports'),
502502
'netAddress' => $vrde->getVRDEProperty('TCP/Address'),
503+
'SecurityMethod' => $vrde->getVRDEProperty('Security/Method'),
503504
'VNCPassword' => $vrde->getVRDEProperty('VNCPassword'),
504505
'authType' => (string)$vrde->authType,
505506
'authTimeout' => $vrde->authTimeout
@@ -1971,6 +1972,7 @@ public function remote_machineSave($args) {
19711972
$m->VRDEServer->setVRDEProperty('TCP/Ports',$args['VRDEServer']['ports']);
19721973
if(@$this->settings->enableAdvancedConfig)
19731974
$m->VRDEServer->setVRDEProperty('TCP/Address',$args['VRDEServer']['netAddress']);
1975+
$m->VRDEServer->setVRDEProperty('Security/Method',$args['VRDEServer']['SecurityMethod']);
19741976
$m->VRDEServer->setVRDEProperty('VNCPassword',$args['VRDEServer']['VNCPassword'] ? $args['VRDEServer']['VNCPassword'] : null);
19751977
$m->VRDEServer->authType = ($args['VRDEServer']['authType'] ? $args['VRDEServer']['authType'] : 'Null');
19761978
$m->VRDEServer->authTimeout = $args['VRDEServer']['authTimeout'];
@@ -3714,6 +3716,7 @@ public function remote_machineGetRuntimeData($args) {
37143716
'enabled' => $vrde->enabled,
37153717
'ports' => $vrde->getVRDEProperty('TCP/Ports'),
37163718
'netAddress' => $vrde->getVRDEProperty('TCP/Address'),
3719+
'SecurityMethod' => $vrde->getVRDEProperty('Security/Method'),
37173720
'VNCPassword' => $vrde->getVRDEProperty('VNCPassword'),
37183721
'authType' => (string)$vrde->authType,
37193722
'authTimeout' => $vrde->authTimeout,
@@ -4301,6 +4304,7 @@ private function _machineGetDetails(&$m) {
43014304
'enabled' => $m->VRDEServer->enabled,
43024305
'ports' => $m->VRDEServer->getVRDEProperty('TCP/Ports'),
43034306
'netAddress' => $m->VRDEServer->getVRDEProperty('TCP/Address'),
4307+
'SecurityMethod' => $m->VRDEServer->getVRDEProperty('Security/Method'),
43044308
'VNCPassword' => $m->VRDEServer->getVRDEProperty('VNCPassword'),
43054309
'authType' => (string)$m->VRDEServer->authType,
43064310
'authTimeout' => $m->VRDEServer->authTimeout,

panes/settingsDisplay.html

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,18 @@
6767
<tr id='vboxSettingsDisplayVRDEAddrRow'>
6868
<th><span class='translate'>Server Address:</span></th>
6969
<td><input type='text' class='vboxText' style='width: 100%' name='vboxSettingsDisplayVRDEAddr' /></td>
70-
</tr>
70+
</tr>
71+
<tr class='vboxSettingsDisplayRDP' id='vboxSettingsDisplayVRDESecMethodRow'>
72+
<th><span class='translate'>Security Method:</span></th>
73+
<td style="white-space: nowrap; width: 100%">
74+
<select class="vboxselectstdbackground" name='vboxSettingsDisplayVRDESecMethod' id='vboxSettingsDisplayVRDESecMethodID' style='width: 100%'>
75+
<option value='negotiate' class='translate'>Negotiate</option>
76+
<option value='TLS'>TLS</option>
77+
<option value='RDP'>RDP</option>
78+
</select>
79+
<td style="width: 0px; display: inline-block;"/>
80+
</td>
81+
</tr>
7182
<tr class='vboxRunningEnabled vboxSettingsDisplayRDP'>
7283
<th><span class='translate'>Authentication Method:</span></th>
7384
<td>
@@ -107,7 +118,7 @@
107118

108119

109120

110-
/* CHange values when data is loaded */
121+
/* Change values when data is loaded */
111122
$('#vboxSettingsDialog').on('dataLoaded', function(){
112123

113124

@@ -159,6 +170,8 @@
159170
$('#vboxSettingsTabDisplayRemote').find('tr.vboxSettingsDisplayVNC').css({'display':'none'});
160171
}
161172
document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEPort.value = $('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.ports;
173+
document.forms['frmVboxSettings'].vboxSettingsDisplayVRDESecMethodID.value =
174+
($('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.SecurityMethod == '' ? "negotiate" : $('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.SecurityMethod);
162175
document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEAuth.value = $('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.authType;
163176
document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEAuthTimeout.value = $('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.authTimeout;
164177
document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEAddr.value = $('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.netAddress;
@@ -191,6 +204,7 @@
191204
if($('#vboxSettingsDialog').data('vboxMachineData').VRDEServer && $('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.VRDEExtPack) {
192205
$('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.ports = document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEPort.value;
193206
$('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.netAddress = document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEAddr.value;
207+
$('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.SecurityMethod = document.forms['frmVboxSettings'].vboxSettingsDisplayVRDESecMethodID.value;
194208
$('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.authType = document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEAuth.value;
195209
$('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.authTimeout = document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEAuthTimeout.value;
196210
$('#vboxSettingsDialog').data('vboxMachineData').VRDEServer.enabled = document.forms['frmVboxSettings'].vboxSettingsDisplayVRDEEnabled.checked;

0 commit comments

Comments
 (0)