Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion webapp/apps/gateway-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
"@devolutions/iron-remote-desktop-rdp": "^0.6.1",
"@devolutions/iron-remote-desktop-vnc": "^0.7.0",
"@devolutions/terminal-shared": "^1.4.0",
"@devolutions/web-ssh-gui": "^0.4.0",
"@devolutions/web-ssh-gui": "^0.6.2",
"@devolutions/web-telnet-gui": "^0.4.0",
"@xterm/addon-clipboard": "^0.1.0",
"@xterm/xterm": "^5.5.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ export class SshFormComponent extends BaseComponent implements OnInit, OnDestroy
visibility.showPasswordInput = authModeAsNumber === SshAuthMode.Username_and_Password;

visibility.showPrivateKeyInput = authModeAsNumber === SshAuthMode.Private_Key;
Comment on lines 113 to 115
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The visibility logic is incomplete for the new Keyboard_Interactive authentication mode. While the comment indicates it only requires username, the code doesn't explicitly set the visibility flags to false for this mode. This could result in unexpected form field visibility when Keyboard_Interactive is selected.

Consider adding explicit handling for when authModeAsNumber equals SshAuthMode.Keyboard_Interactive to ensure both showPasswordInput and showPrivateKeyInput are set to false.

Suggested change
visibility.showPasswordInput = authModeAsNumber === SshAuthMode.Username_and_Password;
visibility.showPrivateKeyInput = authModeAsNumber === SshAuthMode.Private_Key;
// Reset all visibility flags before enabling those required for the selected auth mode
visibility.showPasswordInput = false;
visibility.showPrivateKeyInput = false;
if (authModeAsNumber === SshAuthMode.Username_and_Password) {
visibility.showPasswordInput = true;
} else if (authModeAsNumber === SshAuthMode.Private_Key) {
visibility.showPrivateKeyInput = true;
}

Copilot uses AI. Check for mistakes.

// Keyboard_Interactive only requires username - the SSH library handles the rest
}),
map(() => {
return authMode;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,6 @@ export class WebClientSshComponent extends WebClientBaseComponent implements Web
passpharse: connectionParameters.privateKeyPassphrase ?? '',
privateKey: connectionParameters.privateKey ?? '',
password: connectionParameters.password ?? '',
onHostKeyReceived: (_serverName, _fingerprint) => {
return Promise.resolve(true);
},
}),
).pipe(catchError((error) => throwError(error)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export enum VncAuthMode {
export enum SshAuthMode {
Username_and_Password = 0, //default
Private_Key = 1,
Keyboard_Interactive = 2,
}

namespace WebClientAuthMode {
Expand Down
20 changes: 10 additions & 10 deletions webapp/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.