| <!DOCTYPE html> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| |
| <head> |
| <link rel="stylesheet" href="/styles/main.css?s=1714581448"> |
| <link rel="icon" type="image/svg+xml" href="/images/logos/guac-classic-logo.svg"/> |
| <link rel="icon" type="image/png" href="/images/logos/guac-classic-logo-64.png"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/> |
| <meta charset="UTF-8"/> |
| <title>Apache Guacamole™: 1.4.0</title> |
| </head> |
| |
| |
| <body class=""> |
| |
| <!-- Header --> |
| <div id="header"> |
| <div class="readable-content"> |
| <h1><a href="/">Apache Guacamole™</a></h1> |
| <ul id="navigation" class="menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/releases/" |
| |
| class="releases" |
| >Release Archives</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle " |
| href="#">Documentation</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/faq/" |
| >FAQ</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/api-documentation/" |
| >API / Development</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/doc/gug/" |
| >Guacamole Manual</a> |
| </li> |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle " |
| href="#">Community</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/open-source/" |
| >Contributing to Guacamole</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/support/#mailing-lists" |
| >Mailing Lists</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://issues.apache.org/jira/browse/GUACAMOLE/" |
| >Bug/Issue Tracker</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://github.com/search?utf8=%E2%9C%93&q=repo%3Aapache%2Fguacamole-client+repo%3Aapache%2Fguacamole-server+repo%3Aapache%2Fguacamole-manual+repo%3Aapache%2Fguacamole-website&type=repositories&ref=searchresults" |
| >Source Code</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/security/" |
| >Security Reports</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle " |
| href="#">Support</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/support/#mailing-lists" |
| >Mailing Lists</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="https://issues.apache.org/jira/browse/GUACAMOLE/" |
| >Bug/Issue Tracker</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="/support/#commercial-support" |
| >Commercial Support</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| <li class="dropdown"> |
| |
| <a class="dropdown-toggle apache" |
| href="#">ASF</a> |
| <ul class="dropdown-menu"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/" |
| >ASF Homepage</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/licenses/" |
| >License</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/foundation/thanks.html" |
| >Thanks</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/foundation/sponsorship.html" |
| >Sponsorship</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <li> |
| <a href="http://www.apache.org/foundation/policies/conduct.html" |
| >Code of Conduct</a> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </li> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| </ul> |
| </div> |
| </div> |
| |
| |
| <!-- Content --> |
| <div class="fullwidth-content"> |
| <h1 class="title"> |
| Apache Guacamole 1.4.0 |
| <span class="release-type"> |
| |
| |
| (Archived) |
| |
| </span> |
| </h1> |
| |
| <div class="readable-content"> |
| |
| |
| |
| |
| |
| <div class="note"> |
| <p>Apache Guacamole 1.4.0 is an archived release, and was |
| originally released on 2022-01-01. <strong>The |
| latest release of Apache Guacamole is <a href="/releases/1.5.5/">1.5.5</a>.</strong></p> |
| </div> |
| |
| |
| <div id="links"> |
| |
| |
| |
| <h2>Release documentation</h2> |
| |
| <ul> |
| |
| <li><a href="/doc/1.4.0/gug">Manual</a></li> |
| |
| <li><a href="/doc/1.4.0/guacamole-common">guacamole-common</a></li> |
| |
| <li><a href="/doc/1.4.0/guacamole-common-js">guacamole-common-js</a></li> |
| |
| <li><a href="/doc/1.4.0/guacamole-ext">guacamole-ext</a></li> |
| |
| <li><a href="/doc/1.4.0/libguac">libguac</a></li> |
| |
| </ul> |
| |
| |
| |
| </div> |
| |
| <p>Apache Guacamole is split into two subprojects: "guacamole-client", the |
| HTML5 web application which serves the Guacamole client to users, and |
| "guacamole-server", the remote desktop proxy which the web application |
| communicates with. The source code for each of these may be downloaded |
| below.</p> |
| |
| <p>You <strong>must</strong> <a href="https://www.apache.org/info/verification.html"> |
| verify the integrity of any downloaded files</a> using the OpenPGP signatures |
| we provide with each release. The signatures should be verified against the |
| <a href="https://downloads.apache.org/guacamole/KEYS">KEYS</a> |
| file, which contains the OpenPGP keys of Apache Guacamole's Release Managers. |
| Checksums of each released file are also provided.</p> |
| |
| <!-- Source archives --> |
| <div class="release-downloads"> |
| |
| <table> |
| <tr> |
| <th>Filename</th> |
| <th>Signatures / Hashes</th> |
| </tr> |
| |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/source/guacamole-client-1.4.0.tar.gz">guacamole-client-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/source/guacamole-client-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/source/guacamole-client-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz">guacamole-server-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| </table> |
| |
| |
| </div> |
| |
| <p>If you do not wish to build Apache Guacamole entirely from source, pre-built |
| versions of the web application (.war) and all extensions are provided here in |
| binary form for convenience. <strong>Please note that guacamole-server must |
| still be built and installed from source.</strong></p> |
| |
| <!-- All binaries --> |
| <div class="release-downloads"> |
| |
| <table> |
| <tr> |
| <th>Filename</th> |
| <th>Signatures / Hashes</th> |
| </tr> |
| |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-1.4.0.war">guacamole-1.4.0.war</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-1.4.0.war.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-1.4.0.war.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-duo-1.4.0.tar.gz">guacamole-auth-duo-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-duo-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-duo-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-header-1.4.0.tar.gz">guacamole-auth-header-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-header-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-header-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-jdbc-1.4.0.tar.gz">guacamole-auth-jdbc-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-jdbc-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-jdbc-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-json-1.4.0.tar.gz">guacamole-auth-json-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-json-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-json-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-ldap-1.4.0.tar.gz">guacamole-auth-ldap-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-ldap-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-ldap-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-quickconnect-1.4.0.tar.gz">guacamole-auth-quickconnect-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-quickconnect-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-quickconnect-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-sso-1.4.0.tar.gz">guacamole-auth-sso-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-sso-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-sso-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| |
| |
| <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-totp-1.4.0.tar.gz">guacamole-auth-totp-1.4.0.tar.gz</a></td> |
| <td class="signatures"> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-totp-1.4.0.tar.gz.asc">PGP</a> |
| |
| |
| <a href="https://archive.apache.org/dist/guacamole/1.4.0/binary/guacamole-auth-totp-1.4.0.tar.gz.sha256">SHA-256</a> |
| |
| </td> |
| </tr> |
| |
| </table> |
| |
| |
| </div> |
| |
| <!-- Release notes --> |
| <div id="release-notes"> |
| <h1>Release notes</h1> |
| <p>The 1.4.0 release features support for connection tiling, broadcasting keyboard |
| events across multiple connections, and authentication with encrypted and |
| signed JSON. Established support for single sign-on has been improved, |
| multi-touch support for RDP has been added, and problems with audio input |
| support for RDP have been corrected. For a full list of all changes in this |
| release, please see the <a href="#changelog">changelog</a>.</p> |
| |
| <p><strong>The 1.4.0 release is compatible with older 1.x components.</strong> You should |
| upgrade older components to 1.4.0 when possible, however things should continue |
| to work correctly in the interim:</p> |
| |
| <ul> |
| <li>Extensions written for older 1.x releases can be used by 1.4.0.</li> |
| <li>Components written for the version of the Guacamole protocol used by older |
| 1.x releases can be used with components of the 1.4.0 release.</li> |
| </ul> |
| |
| <p>Regardless of inter-component compatibility, <strong>there are changes in 1.4.0 which |
| may affect downstream users of Guacamole’s APIs</strong>. Please see the <a href="#deprecation--compatibility-notes">deprecation |
| / compatibility notes</a> section for more |
| information.</p> |
| |
| <h2 id="connection-tiling-and-keyboard-broadcasting">Connection tiling and keyboard broadcasting</h2> |
| |
| <p><a href="/doc/1.4.0/gug/using-guacamole.html#switching-and-tiling-connections">Multiple connections can now be displayed simultaneously within the same |
| browser tab</a>, |
| automatically arranged in an even, tiled layout:</p> |
| |
| <p><img src="/doc/1.4.0/gug/_images/client-tiled.png" alt="Multiple client displays in a tiled arrangement" /></p> |
| |
| <p>The currently-focused connection is indicated by a blue border, and the user |
| can choose to focus any number of these tiled connections at the same time. |
| <strong>If multiple connections are focused, keyboard interaction is broadcast across |
| each of those connections.</strong></p> |
| |
| <h2 id="major-fixes-to-rdp-audio-input-support">Major fixes to RDP audio input support</h2> |
| |
| <p>Depending on the application in use within the remote desktop, Guacamole’s |
| audio input support for RDP suffered from quality issues related to variability |
| in audio buffer behavior and size. If the audio backend used by the application |
| could not adjust for occasional bursts of audio packets, any audio packets |
| received by the remote desktop that exceeded the remaining buffer space would |
| be dropped, resulting in audible clicks/pops and faster-than-expected playback.</p> |
| |
| <p>This has now been corrected. Guacamole will automatically throttle the amount |
| of data it sends to the remote desktop to avoid running out of remote buffer |
| space, ensuring the audio received by applications within the remote desktop is |
| identical to the audio received by Guacamole via the browser.</p> |
| |
| <h2 id="rdp-support-for-passing-through-multi-touch-events">RDP support for passing through multi-touch events</h2> |
| |
| <p>In addition to Guacamole’s established support for emulating a mouse on touch |
| devices, multi-touch events may now be passed through to the remote desktop |
| server when supported and enabled.</p> |
| |
| <p>RDP supports multi-touch through its “RDPEI” channel. <a href="/doc/1.4.0/gug/configuring-guacamole.html#device-redirection">If touch is enabled on a |
| Guacamole RDP connection</a>, |
| touch interaction with the Guacamole display will directly affect touch-enabled |
| applications within the remote desktop session rather than being turned into |
| mouse events.</p> |
| |
| <h2 id="support-for-secondary-sso-providers">Support for secondary SSO providers</h2> |
| |
| <p>Guacamole’s support for single sign-on has historically been all-or-nothing, |
| with either <em>all</em> users using SSO to authenticate or none at all. This is no |
| longer the case: Guacamole may now be configured to allow normal |
| username/password authentication in addition to SSO, and multiple SSO providers |
| may be used at the same time.</p> |
| |
| <p>Whether an SSO authentication extension automatically takes effect for all |
| users depends on whether that extension has priority, which can now be defined |
| using <a href="/doc/1.4.0/gug/configuring-guacamole.html#guacamole-properties">the <code class="language-plaintext highlighter-rouge">extension-priority</code> property</a>. |
| For example, to automatically require SAML for all users, you would give the |
| SAML extension priority above all others:</p> |
| |
| <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>extension-priority: saml |
| </code></pre></div></div> |
| |
| <p>Or, to allow username/password authentication and simply provide the option for |
| users to use SAML, you would ensure that other extensions have priority:</p> |
| |
| <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>extension-priority: *, saml |
| </code></pre></div></div> |
| |
| <p>More information on <a href="/doc/1.4.0/gug/configuring-guacamole.html#guacamole-properties">using the <code class="language-plaintext highlighter-rouge">extension-priority</code> property</a> |
| and controlling the behavior of the supported SSO extensions can be found in |
| the Guacamole manual:</p> |
| |
| <ul> |
| <li><a href="/doc/1.4.0/gug/cas-auth.html">CAS Authentication</a></li> |
| <li><a href="/doc/1.4.0/gug/openid-auth.html">OpenID Connect Authentication</a></li> |
| <li><a href="/doc/1.4.0/gug/saml-auth.html">SAML Authentication</a></li> |
| </ul> |
| |
| <h2 id="support-for-authentication-with-encrypted-signed-json">Support for authentication with encrypted, signed JSON</h2> |
| |
| <p>The “guacamole-auth-json” authentication extension, <a href="https://github.com/glyptodon/guacamole-auth-json">formerly a third-party |
| project maintained by Glyptodon</a>, |
| has now been brought into Apache Guacamole as one of the project’s own |
| extensions.</p> |
| |
| <p>guacamole-auth-json allows external software to automatically authenticate and |
| authorize users with an encrypted and signed JSON document. As long as the |
| received JSON has not expired and was encrypted and signed with the correct |
| key, it is accepted as sufficient verification that the user is authorized to |
| access the resources described by that JSON.</p> |
| |
| <p>For more information, see the <a href="/doc/1.4.0/gug/json-auth.html">documentation covering guacamole-auth-json in |
| the Guacamole manual</a>.</p> |
| |
| <h1 id="changelog">Changelog</h1> |
| |
| <h3 id="user-interface--platform">User interface / platform</h3> |
| |
| <ul> |
| <li>Control caching of extension JS/CSS (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-275">GUACAMOLE-275</a>)</li> |
| <li>Provide option for broadcasting input events across multiple connections (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-724">GUACAMOLE-724</a>)</li> |
| <li>Migrate away from including auth token within REST API URLs (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-956">GUACAMOLE-956</a>)</li> |
| <li class="bug">Users/groups with identifiers containing slashes cannot be modified (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1261">GUACAMOLE-1261</a>)</li> |
| <li>Automatically enforce request size limits independently of reverse proxy (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1298">GUACAMOLE-1298</a>)</li> |
| <li class="bug">Unexpected errors during session expiration may block further expirations (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1299">GUACAMOLE-1299</a>)</li> |
| <li class="bug">Connection-specific history sorted in wrong order (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1366">GUACAMOLE-1366</a>)</li> |
| <li class="bug">Login appears to succeed if the webapp is entirely down (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1384">GUACAMOLE-1384</a>)</li> |
| </ul> |
| |
| <h3 id="docker-images">Docker images</h3> |
| |
| <ul> |
| <li>Run Tomcat as reduced-privilege user (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-890">GUACAMOLE-890</a>)</li> |
| <li>Add account auto-create options to Docker (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1128">GUACAMOLE-1128</a>)</li> |
| <li>Add <code class="language-plaintext highlighter-rouge">OPENID_MAX_TOKEN_VALIDITY</code> environment variable (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1284">GUACAMOLE-1284</a>)</li> |
| <li class="bug">Correct non-fatal error in handling of OpenID configuration (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1316">GUACAMOLE-1316</a>)</li> |
| </ul> |
| |
| <h3 id="authentication-integration-and-storage">Authentication, integration, and storage</h3> |
| |
| <ul> |
| <li>Ensure logout works as expected when using SSO (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-680">GUACAMOLE-680</a>)</li> |
| <li>Allow for clearing TOTP Data in admin interface (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-770">GUACAMOLE-770</a>)</li> |
| <li class="bug">Non-DN usernames can no longer be used for search bind DN (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-944">GUACAMOLE-944</a>)</li> |
| <li>Provide configuration for filtering LDAP groups (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-996">GUACAMOLE-996</a>)</li> |
| <li>Allow QuickConnect extension to block certain parameters (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1025">GUACAMOLE-1025</a>)</li> |
| <li>Ignore non-relevant attributes for objects returned by LDAP queries (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1130">GUACAMOLE-1130</a>)</li> |
| <li class="bug">User profile information cleared after TOTP enrollment (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1199">GUACAMOLE-1199</a>)</li> |
| <li>Move guacamole-auth-json into the main project (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1218">GUACAMOLE-1218</a>)</li> |
| <li>Allow NAS IP address to be configured (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1252">GUACAMOLE-1252</a>)</li> |
| <li>Allow login with standard username/password when SSO is enabled (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1364">GUACAMOLE-1364</a>)</li> |
| <li>Add <code class="language-plaintext highlighter-rouge">user-mapping.xml</code> support for simple hashing with SHA-256 (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1391">GUACAMOLE-1391</a>)</li> |
| <li>Automatically focus TOTP field (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1397">GUACAMOLE-1397</a>)</li> |
| <li>Automatically detect MariaDB / MySQL driver (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1407">GUACAMOLE-1407</a>)</li> |
| </ul> |
| |
| <h3 id="protocol-support--guacd">Protocol support / guacd</h3> |
| |
| <ul> |
| <li class="bug">RDP clipboard uses incorrect newline characters (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-478">GUACAMOLE-478</a>)</li> |
| <li>Notify connecting client on unrecognized connection ID (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1047">GUACAMOLE-1047</a>)</li> |
| <li>Support server control instructions during handshake (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1048">GUACAMOLE-1048</a>)</li> |
| <li class="bug">VNC fails to connect to macOS (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1133">GUACAMOLE-1133</a>)</li> |
| <li>Add support for connecting to Kubernetes pods using exec (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1174">GUACAMOLE-1174</a>)</li> |
| <li class="bug">guacd cannot bind to IPv6 addresses (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1190">GUACAMOLE-1190</a>)</li> |
| <li>Disable caches that FreeRDP no longer considers supported (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1191">GUACAMOLE-1191</a>)</li> |
| <li class="bug">RDP audio input samples are dropped (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1201">GUACAMOLE-1201</a>)</li> |
| <li>Add support for RDP touch events (RDPEI) (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1204">GUACAMOLE-1204</a>)</li> |
| <li class="bug">Backslash not properly escaped in server-generated JSON (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1215">GUACAMOLE-1215</a>)</li> |
| <li>Add configuration option to specify WOL port (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1245">GUACAMOLE-1245</a>)</li> |
| <li>Support libuuid (util-linux) in addition to OSSP UUID (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1254">GUACAMOLE-1254</a>)</li> |
| <li>Correct double-free when built against FreeRDP 2.0.0-rc4 (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1259">GUACAMOLE-1259</a>)</li> |
| <li class="bug">Double-free may occur upon VNC disconnect (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1263">GUACAMOLE-1263</a>)</li> |
| <li class="bug">RDP file uploads may (still) be truncated to 32 bits (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1276">GUACAMOLE-1276</a>)</li> |
| <li class="bug">Legacy RDP encryption may fail with <code class="language-plaintext highlighter-rouge">ERRINFO_DECRYPT_FAILED</code> (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1283">GUACAMOLE-1283</a>)</li> |
| <li>Add support for forcing lossless compression of graphics (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1302">GUACAMOLE-1302</a>)</li> |
| <li class="bug"><code class="language-plaintext highlighter-rouge">leave_handler</code> is not correctly set (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1350">GUACAMOLE-1350</a>)</li> |
| <li>Map “meta” (Windows) key for RDP connections (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1386">GUACAMOLE-1386</a>)</li> |
| </ul> |
| |
| <h3 id="internationalization">Internationalization</h3> |
| |
| <ul> |
| <li>Update Russian on-screen keyboard to allow input of Latin characters (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1055">GUACAMOLE-1055</a>)</li> |
| <li>Add Norwegian keymap for RDP (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1064">GUACAMOLE-1064</a>)</li> |
| <li>Update/improve French translation (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1160">GUACAMOLE-1160</a>)</li> |
| <li>Add support for Portuguese language (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1207">GUACAMOLE-1207</a>)</li> |
| <li>Update/improve Japanese translation (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1265">GUACAMOLE-1265</a>)</li> |
| <li class="bug">Dash and underscore in <code class="language-plaintext highlighter-rouge">fr-be-azerty</code> layout are swapped (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1277">GUACAMOLE-1277</a>)</li> |
| <li>Add support for Korean language (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1291">GUACAMOLE-1291</a>)</li> |
| <li class="bug">”/” key in <code class="language-plaintext highlighter-rouge">pt-br-qwerty</code> layout incorrectly recognized as right Shift (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1305">GUACAMOLE-1305</a>)</li> |
| <li class="bug">Translation key for pending OpenID Connect redirect is mismatched (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1334">GUACAMOLE-1334</a>)</li> |
| <li>Update/improve Spanish translation (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1339">GUACAMOLE-1339</a>)</li> |
| </ul> |
| |
| <h3 id="documentation">Documentation</h3> |
| |
| <ul> |
| <li>Document branding process (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-747">GUACAMOLE-747</a>)</li> |
| <li>Add non-nullable modifiers to JSDoc parameter/return types where appropriate (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-986">GUACAMOLE-986</a>)</li> |
| <li>Document configuration of <code class="language-plaintext highlighter-rouge">client_max_body_size</code> for Nginx (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1060">GUACAMOLE-1060</a>)</li> |
| <li class="bug">Typo in documentation of <code class="language-plaintext highlighter-rouge">mimetype</code> parameter (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1185">GUACAMOLE-1185</a>)</li> |
| <li class="bug">“Verifying” repeatedly misspelled in libguac documentation (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1225">GUACAMOLE-1225</a>)</li> |
| <li>Migrate guacamole-manual away from DocBook (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1347">GUACAMOLE-1347</a>)</li> |
| <li class="bug">Usage documentation of <code class="language-plaintext highlighter-rouge">guacNotification</code> directive is incorrect (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1396">GUACAMOLE-1396</a>)</li> |
| </ul> |
| |
| <h3 id="general-housekeeping-and-cleanup">General housekeeping and cleanup</h3> |
| |
| <ul> |
| <li class="bug">Creation of source .tar.gz fails on platforms with large group IDs (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-503">GUACAMOLE-503</a>)</li> |
| <li>Update webapp dependencies to latest stable and compatible versions (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-773">GUACAMOLE-773</a>)</li> |
| <li class="bug">Build fails against libvncclient 0.9.7 (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1227">GUACAMOLE-1227</a>)</li> |
| <li>Implement <code class="language-plaintext highlighter-rouge">VerifyCertificateEx</code> rather than <code class="language-plaintext highlighter-rouge">VerifyCertificate</code> (FreeRDP 2.3.1) (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1307">GUACAMOLE-1307</a>)</li> |
| <li class="bug">guacamole-client build fails against newer versions of JDK (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1317">GUACAMOLE-1317</a>)</li> |
| <li class="bug">Translation files contain unnecessary trailing whitespace (<a href="https://issues.apache.org/jira/browse/GUACAMOLE-1337">GUACAMOLE-1337</a>)</li> |
| </ul> |
| |
| <h1 id="deprecation--compatibility-notes">Deprecation / Compatibility notes</h1> |
| |
| <p>Each 1.x release of Apache Guacamole should be compatible with components of |
| older 1.x releases. This compatibility is intended at the Guacamole protocol |
| level and at the extension level, but not necessarily at the API level. This |
| means:</p> |
| |
| <ul> |
| <li>Extensions from older 1.x releases should still work in binary form, but may |
| need code changes before their source will build against a newer version of |
| guacamole-ext.</li> |
| <li>Software which uses the Guacamole protocol of an older 1.x release should |
| still work.</li> |
| <li>Software which uses libguac from an older 1.x release should still work by |
| continuing to use the libguac from that release, as newer versions of |
| libguac may not be API/ABI compatible. In the case of third-party protocol |
| support plugins for guacd, this means that the guacd from that release must |
| also be used. Compatibility with respect to libguac is represented by the |
| <a href="https://en.wikipedia.org/wiki/Soname">soname</a>.</li> |
| <li>You should update to newer versions where applicable and when possible.</li> |
| </ul> |
| |
| <p>As of 1.4.0, the following changes have been made which affect compatibility |
| with past releases:</p> |
| |
| <h2 id="java-api-guacamole-common-changes">Java API (guacamole-common) changes</h2> |
| |
| <h3 id="guacamolehttptunnelservlet-sessions-are-now-decoupled-from-the-guacamoletunnel-uuid"><code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet</code> sessions are now decoupled from the <code class="language-plaintext highlighter-rouge">GuacamoleTunnel</code> UUID</h3> |
| |
| <p>The <code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet</code> internals have been improved to entirely |
| decouple the concept of the tunnel UUID (as returned by <code class="language-plaintext highlighter-rouge">getUUID()</code>) from the |
| concept of the HTTP tunnel session. The HTTP tunnel now instead generates its |
| own random session identifier that is independent of the UUID.</p> |
| |
| <p>Internal, UUID-specific functions of <code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet</code> like |
| <code class="language-plaintext highlighter-rouge">registerTunnel()</code> and <code class="language-plaintext highlighter-rouge">deregisterTunnel()</code> have been deprecated in favor of |
| versions of these functions that do not assume the tunnel will be identified by |
| its UUID. It is not common to use these functions in subclasses of |
| <code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet</code>. Any such usages should continue to work, but |
| should be migrated to the new versions of these functions when possible.</p> |
| |
| <ul> |
| <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-956">GUACAMOLE-956</a> - Migrate away from including auth token within REST API URLs</li> |
| </ul> |
| |
| <h2 id="extension-api-guacamole-ext-changes">Extension API (guacamole-ext) changes</h2> |
| |
| <h3 id="default-localenvironment-constructor-is-now-deprecated">Default <code class="language-plaintext highlighter-rouge">LocalEnvironment</code> constructor is now deprecated</h3> |
| |
| <p>To facilitate automatic retrieval of <code class="language-plaintext highlighter-rouge">guacamole.properties</code> values from key |
| vaults, the <code class="language-plaintext highlighter-rouge">Environment</code> interface has been improved to allow arbitrary |
| sources of properties to be added, and the <code class="language-plaintext highlighter-rouge">LocalEnvironment</code> implementation |
| has been updated to be a singleton. New usages should invoke |
| <code class="language-plaintext highlighter-rouge">LocalEnvironment.getInstance()</code> instead of manually creating new instances.</p> |
| |
| <p>Old usages of the default constructor will still work as expected, but will |
| produce a compile-time warning about deprecation. The old default constructor |
| will still create a new <code class="language-plaintext highlighter-rouge">LocalEnvironment</code> instance, however this new instance |
| will actually transparently delegate to the <code class="language-plaintext highlighter-rouge">LocalEnvironment.getInstance()</code> |
| singleton.</p> |
| |
| <p>Note that while completion of vault support has been bumped to the next |
| release, this core API improvement is still present on 1.4.0.</p> |
| |
| <ul> |
| <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-641">GUACAMOLE-641</a> - Support storage of sensitive data within key vaults</li> |
| </ul> |
| |
| <h2 id="libguac-api-changes">libguac API changes</h2> |
| |
| <h3 id="touch_handler-added-to-guac_user-structure"><code class="language-plaintext highlighter-rouge">touch_handler</code> added to <code class="language-plaintext highlighter-rouge">guac_user</code> structure</h3> |
| |
| <p>To allow multi-touch events to be passed through from client to server where |
| supported, an additional <code class="language-plaintext highlighter-rouge">touch</code> instruction has been defined within the |
| Guacamole protocol to represent the state of an individual touch. A new |
| handler, <code class="language-plaintext highlighter-rouge">touch_handler</code>, is now present within the <code class="language-plaintext highlighter-rouge">guac_user</code> structure to |
| allow this instruction to be handled when received from the client. This change |
| affects the in-memory size of the <code class="language-plaintext highlighter-rouge">guac_user</code> structure.</p> |
| |
| <p>Downstream usages of libguac which make use of <code class="language-plaintext highlighter-rouge">guac_user</code> will need to be |
| rebuilt to ensure that the structure sizes and memory offsets used are correct.</p> |
| |
| <ul> |
| <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-1204">GUACAMOLE-1204</a> - Add support for RDP touch events (RDPEI)</li> |
| </ul> |
| |
| <h3 id="guac_wol_wake-now-accepts-a-udp-port-parameter"><code class="language-plaintext highlighter-rouge">guac_wol_wake()</code> now accepts a UDP port parameter</h3> |
| |
| <p>The <code class="language-plaintext highlighter-rouge">guac_wol_wake()</code> function now accepts an additional parameter defining the |
| UDP port to be used for the magic packet. This change affects the formal |
| arguments of <code class="language-plaintext highlighter-rouge">guac_wol_wake()</code>.</p> |
| |
| <p>Downstream usages of libguac which make use of <code class="language-plaintext highlighter-rouge">guac_wol_wake()</code> will need to |
| be updated to include the port number and rebuilt. The UDP port used previously |
| for all calls to <code class="language-plaintext highlighter-rouge">guac_wol_wake()</code> was <code class="language-plaintext highlighter-rouge">9</code>, as defined by the <code class="language-plaintext highlighter-rouge">GUAC_WOL_PORT</code> |
| constant.</p> |
| |
| <ul> |
| <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-1245">GUACAMOLE-1245</a> - Add configuration option to specify WOL port</li> |
| </ul> |
| |
| |
| </div> |
| |
| </div> |
| |
| </div> |
| |
| <!-- Footer --> |
| <div id="footer"> |
| <div class="readable-content"> |
| |
| <!-- Copyrights --> |
| <p class="copyright"> |
| Copyright © 2024 <a href="http://www.apache.org/">The Apache |
| Software Foundation</a>, Licensed under the <a |
| href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, |
| Version 2.0</a>. |
| </p> |
| |
| <!-- Trademarks --> |
| <p class="trademarks"> |
| Apache Guacamole, Guacamole, Apache, the Apache feather logo, and the |
| Apache Guacamole project logo are trademarks of The Apache Software |
| Foundation. |
| </p> |
| |
| </div> |
| </div> |
| |
| |
| <!-- jQuery --> |
| <script src="/scripts/jquery.min.js" type="text/javascript"></script> |
| |
| <!-- Dropdown toggle --> |
| <script src="/scripts/dropdown.js" type="text/javascript"></script> |
| |
| </body> |
| </html> |