From 7de08098a3fe257caadfc5198eeffc9c4409bf8c Mon Sep 17 00:00:00 2001 From: eugen-keeper Date: Tue, 26 Nov 2024 15:48:26 +0000 Subject: [PATCH] GUACAMOLE-2002: Allow connection clipboard limits to be configured. --- .../guacamole/protocols/kubernetes.json | 11 +++++++ .../org/apache/guacamole/protocols/rdp.json | 5 +++ .../org/apache/guacamole/protocols/ssh.json | 5 +++ .../apache/guacamole/protocols/telnet.json | 5 +++ .../org/apache/guacamole/protocols/vnc.json | 5 +++ .../main/frontend/src/translations/en.json | 33 +++++++++++++++++++ 6 files changed, 64 insertions(+) diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json index c0f23eb507..302e344081 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/kubernetes.json @@ -67,6 +67,17 @@ ] }, + { + "name" : "clipboard", + "fields" : [ + { + "name" : "clipboard-buffer-size", + "type" : "ENUM", + "options" : [ "", "262144", "1048576", "10485760" ] + } + ] + }, + { "name" : "display", "fields" : [ diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/rdp.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/rdp.json index 9e453fc00b..1ebe864662 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/rdp.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/rdp.json @@ -191,6 +191,11 @@ "type" : "ENUM", "options" : [ "", "preserve", "unix", "windows" ] }, + { + "name" : "clipboard-buffer-size", + "type" : "ENUM", + "options" : [ "", "262144", "1048576", "10485760", "52428800" ] + }, { "name" : "disable-copy", "type" : "BOOLEAN", diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json index 91d1fef098..a321978887 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json @@ -82,6 +82,11 @@ { "name" : "clipboard", "fields" : [ + { + "name" : "clipboard-buffer-size", + "type" : "ENUM", + "options" : [ "", "262144", "1048576", "10485760" ] + }, { "name" : "disable-copy", "type" : "BOOLEAN", diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json index 041c3acc98..68e488e9c1 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json @@ -82,6 +82,11 @@ { "name" : "clipboard", "fields" : [ + { + "name" : "clipboard-buffer-size", + "type" : "ENUM", + "options" : [ "", "262144", "1048576", "10485760" ] + }, { "name" : "disable-copy", "type" : "BOOLEAN", diff --git a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/vnc.json b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/vnc.json index cd766f0e9e..85eec1b5ca 100644 --- a/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/vnc.json +++ b/guacamole-ext/src/main/resources/org/apache/guacamole/protocols/vnc.json @@ -88,6 +88,11 @@ { "name" : "clipboard", "fields" : [ + { + "name" : "clipboard-buffer-size", + "type" : "ENUM", + "options" : [ "", "262144", "1048576", "10485760", "52428800" ] + }, { "name" : "clipboard-encoding", "type" : "ENUM", diff --git a/guacamole/src/main/frontend/src/translations/en.json b/guacamole/src/main/frontend/src/translations/en.json index d029687871..d85a245446 100644 --- a/guacamole/src/main/frontend/src/translations/en.json +++ b/guacamole/src/main/frontend/src/translations/en.json @@ -507,6 +507,7 @@ "FIELD_HEADER_CA_CERT" : "Certificate authority certificate:", "FIELD_HEADER_CLIENT_CERT" : "Client certificate:", "FIELD_HEADER_CLIENT_KEY" : "Client key:", + "FIELD_HEADER_CLIPBOARD_BUFFER_SIZE" : "Clipboard data size limit:", "FIELD_HEADER_COLOR_SCHEME" : "Color scheme:", "FIELD_HEADER_CONTAINER" : "Container name:", "FIELD_HEADER_CREATE_RECORDING_PATH" : "Automatically create recording path:", @@ -536,6 +537,11 @@ "FIELD_OPTION_BACKSPACE_8" : "Backspace (Ctrl-H)", "FIELD_OPTION_BACKSPACE_127" : "Delete (Ctrl-?)", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_EMPTY" : "", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_262144" : "256KB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_1048576" : "1MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_10485760" : "10MB", + "FIELD_OPTION_COLOR_SCHEME_BLACK_WHITE" : "Black on white", "FIELD_OPTION_COLOR_SCHEME_EMPTY" : "", "FIELD_OPTION_COLOR_SCHEME_GRAY_BLACK" : "Gray on black", @@ -562,6 +568,7 @@ "SECTION_HEADER_AUTHENTICATION" : "Authentication", "SECTION_HEADER_BEHAVIOR" : "Terminal behavior", + "SECTION_HEADER_CLIPBOARD" : "Clipboard", "SECTION_HEADER_CONTAINER" : "Container", "SECTION_HEADER_DISPLAY" : "Display", "SECTION_HEADER_RECORDING" : "Screen Recording", @@ -575,6 +582,7 @@ "FIELD_HEADER_CERT_TOFU" : "Trust host certificate on first use:", "FIELD_HEADER_CERT_FINGERPRINTS" : "Fingerprints of trusted host certificates:", "FIELD_HEADER_CLIENT_NAME" : "Client name:", + "FIELD_HEADER_CLIPBOARD_BUFFER_SIZE" : "Clipboard data size limit:", "FIELD_HEADER_COLOR_DEPTH" : "Color depth:", "FIELD_HEADER_CONSOLE" : "Administrator console:", "FIELD_HEADER_CONSOLE_AUDIO" : "Support audio in console:", @@ -661,6 +669,12 @@ "FIELD_HEADER_WOL_UDP_PORT" : "UDP port for WoL packet: ", "FIELD_HEADER_WOL_WAIT_TIME" : "Host boot wait time:", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_EMPTY" : "", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_262144" : "256KB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_1048576" : "1MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_10485760" : "10MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_52428800" : "50MB", + "FIELD_OPTION_NORMALIZE_CLIPBOARD_EMPTY" : "", "FIELD_OPTION_NORMALIZE_CLIPBOARD_PRESERVE" : "Preserve as-is", "FIELD_OPTION_NORMALIZE_CLIPBOARD_UNIX" : "Linux/Mac/Unix (LF)", @@ -729,6 +743,7 @@ "PROTOCOL_SSH" : { "FIELD_HEADER_BACKSPACE" : "Backspace key sends:", + "FIELD_HEADER_CLIPBOARD_BUFFER_SIZE" : "Clipboard data size limit:", "FIELD_HEADER_COLOR_SCHEME" : "Color scheme:", "FIELD_HEADER_COMMAND" : "Execute command:", "FIELD_HEADER_CREATE_RECORDING_PATH" : "Automatically create recording path:", @@ -775,6 +790,11 @@ "FIELD_OPTION_BACKSPACE_8" : "Backspace (Ctrl-H)", "FIELD_OPTION_BACKSPACE_127" : "Delete (Ctrl-?)", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_EMPTY" : "", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_262144" : "256KB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_1048576" : "1MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_10485760" : "10MB", + "FIELD_OPTION_COLOR_SCHEME_BLACK_WHITE" : "Black on white", "FIELD_OPTION_COLOR_SCHEME_EMPTY" : "", "FIELD_OPTION_COLOR_SCHEME_GRAY_BLACK" : "Gray on black", @@ -823,6 +843,7 @@ "PROTOCOL_TELNET" : { "FIELD_HEADER_BACKSPACE" : "Backspace key sends:", + "FIELD_HEADER_CLIPBOARD_BUFFER_SIZE" : "Clipboard data size limit:", "FIELD_HEADER_COLOR_SCHEME" : "Color scheme:", "FIELD_HEADER_CREATE_RECORDING_PATH" : "Automatically create recording path:", "FIELD_HEADER_CREATE_TYPESCRIPT_PATH" : "Automatically create typescript path:", @@ -861,6 +882,11 @@ "FIELD_OPTION_BACKSPACE_8" : "Backspace (Ctrl-H)", "FIELD_OPTION_BACKSPACE_127" : "Delete (Ctrl-?)", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_EMPTY" : "", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_262144" : "256KB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_1048576" : "1MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_10485760" : "10MB", + "FIELD_OPTION_COLOR_SCHEME_BLACK_WHITE" : "Black on white", "FIELD_OPTION_COLOR_SCHEME_EMPTY" : "", "FIELD_OPTION_COLOR_SCHEME_GRAY_BLACK" : "Gray on black", @@ -907,6 +933,7 @@ "PROTOCOL_VNC" : { "FIELD_HEADER_AUDIO_SERVERNAME" : "Audio server name:", + "FIELD_HEADER_CLIPBOARD_BUFFER_SIZE" : "Clipboard data size limit:", "FIELD_HEADER_CLIPBOARD_ENCODING" : "Encoding:", "FIELD_HEADER_COLOR_DEPTH" : "Color depth:", "FIELD_HEADER_COMPRESS_LEVEL" : "Compression level:", @@ -955,6 +982,12 @@ "FIELD_HEADER_WOL_UDP_PORT" : "UDP port for WoL packet:", "FIELD_HEADER_WOL_WAIT_TIME" : "Host boot wait time:", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_EMPTY" : "", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_262144" : "256KB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_1048576" : "1MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_10485760" : "10MB", + "FIELD_OPTION_CLIPBOARD_BUFFER_SIZE_52428800" : "50MB", + "FIELD_OPTION_COLOR_DEPTH_8" : "256 color", "FIELD_OPTION_COLOR_DEPTH_16" : "Low color (16-bit)", "FIELD_OPTION_COLOR_DEPTH_24" : "True color (24-bit)",