<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <link rel="stylesheet" href="/styles/main.css?s=1712697967">
    <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.0.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.0.0
    <span class="release-type">
        
        
            (Archived)
        
    </span>
</h1>

<div class="readable-content">

    

    
        
        <div class="note">
            <p>Apache Guacamole 1.0.0 is an archived release, and was
            originally released on 2019-01-08. <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.0.0/gug">Manual</a></li>
        
            <li><a href="/doc/1.0.0/guacamole-common">guacamole-common</a></li>
        
            <li><a href="/doc/1.0.0/guacamole-common-js">guacamole-common-js</a></li>
        
            <li><a href="/doc/1.0.0/guacamole-ext">guacamole-ext</a></li>
        
            <li><a href="/doc/1.0.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.0.0/source/guacamole-client-1.0.0.tar.gz">guacamole-client-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/source/guacamole-client-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/source/guacamole-client-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/source/guacamole-server-1.0.0.tar.gz">guacamole-server-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/source/guacamole-server-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/source/guacamole-server-1.0.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.0.0/binary/guacamole-1.0.0.war">guacamole-1.0.0.war</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-1.0.0.war.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-1.0.0.war.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-cas-1.0.0.tar.gz">guacamole-auth-cas-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-cas-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-cas-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-duo-1.0.0.tar.gz">guacamole-auth-duo-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-duo-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-duo-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-header-1.0.0.tar.gz">guacamole-auth-header-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-header-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-header-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-jdbc-1.0.0.tar.gz">guacamole-auth-jdbc-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-jdbc-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-jdbc-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-ldap-1.0.0.tar.gz">guacamole-auth-ldap-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-ldap-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-ldap-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-openid-1.0.0.tar.gz">guacamole-auth-openid-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-openid-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-openid-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-quickconnect-1.0.0.tar.gz">guacamole-auth-quickconnect-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-quickconnect-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-quickconnect-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-totp-1.0.0.tar.gz">guacamole-auth-totp-1.0.0.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-totp-1.0.0.tar.gz.asc">PGP</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/1.0.0/binary/guacamole-auth-totp-1.0.0.tar.gz.sha256">SHA-256</a>
                    
                </td>
            </tr>
        
    </table>


    </div>

    <!-- Release notes -->
    <div id="release-notes">
        <h1>Release notes</h1>
        <p>The 1.0.0 release features support for user groups, improved clipboard
integration leveraging the Asynchronous Clipboard API, as well as support for
TOTP (Google Authenticator), RADIUS, and dead keys.</p>

<p><strong>This release contains changes which break compatibility with past releases.</strong>
Please see the <a href="#deprecation--compatibility-notes">deprecation / compatibility
notes</a> section for more information.</p>

<h2 id="new-features-and-improvements">New features and improvements</h2>

<h3 id="support-for-user-groups">Support for user groups</h3>

<p>Guacamole now supports <a href="/doc/1.0.0/gug/administration.html#user-group-management">granting permissions based on group
membership</a>. While
this has been supported to a degree for some time via LDAP and the <code class="language-plaintext highlighter-rouge">seeAlso</code>
attribute, groups can now be defined and used within a database, with LDAP and
a database combined, or within other extensions using Guacamole’s extension
API.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-220">GUACAMOLE-220</a> - Implement user groups</li>
</ul>

<h3 id="clipboard-integration-with-the-asynchronous-clipboard-api">Clipboard integration with the Asynchronous Clipboard API</h3>

<p>For browsers which implement the <a href="https://www.w3.org/TR/clipboard-apis/#async-clipboard-api">Asynchronous Clipboard
API</a>, Guacamole will
now automatically synchronize the local and remote clipboards. Users will be
prompted to grant clipboard access upon opening Guacamole, and Guacamole will
synchronize the clipboard if access is granted.</p>

<p>This API <a href="https://developers.google.com/web/updates/2018/03/clipboardapi">has been implemented in Google Chrome since version
66</a>, and other
browsers will likely follow suit. The legacy synchronous clipboard API will
continue to be used as a fallback for browsers that support clipboard access
but lack support for the newer API (Internet Explorer).</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-559">GUACAMOLE-559</a> - Add support for the new Asynchronous Clipboard API</li>
</ul>

<h3 id="multi-factor-authentication-with-google-authenticator--totp">Multi-factor authentication with Google Authenticator / TOTP</h3>

<p>Guacamole now has support for TOTP as an additional authentication factor.
TOTP (<a href="https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm">Time-based One-Time Password</a>)
is a <a href="https://tools.ietf.org/html/rfc6238">standardized algorithm</a> used for
multi-factor authentication. With this new support, Guacamole may be used with
any application or authentication device which supports the TOTP standard,
including the popular Google Authenticator.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-96">GUACAMOLE-96</a> - Two factor authentication with Google Authenticator</li>
</ul>

<h3 id="support-for-radius-authentication">Support for RADIUS authentication</h3>

<p>RADIUS support has been added, allowing Guacamole to delegate authentication to
a RADIUS service like FreeRADIUS for validating credentials, enforcing multiple
authentication factors, etc.</p>

<p>Because the RADIUS library used by this support is licensed under the LGPL, a
convenience binary for this extension is not provided. If you wish to use the
RADIUS support, you will need to <a href="/doc/1.0.0/gug/installing-guacamole.html">build guacamole-client from
source</a> and explicitly enable that
part of the build with <code class="language-plaintext highlighter-rouge">-P</code>:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mvn package -Plgpl-extensions
</code></pre></div></div>

<p>Instructions for building this support are <a href="/doc/1.0.0/gug/radius-auth.html">provided in the
manual</a>.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-197">GUACAMOLE-197</a> - Implement Support for RADIUS Authentication</li>
</ul>

<h3 id="support-for-creating-ad-hoc-connections">Support for creating ad-hoc connections</h3>

<p>An extension is now provided which allows users to create arbitrary, temporary
connections through entering a URL. This ability can be quite convenient, as
users need not create new connections through the administrative interface in
order to quickly access a particular machine.</p>

<p>Be sure you understand the <a href="/doc/1.0.0/gug/adhoc-connections.html">security implications of providing this level of
access</a>. A Guacamole connection
implicitly has network and filesystem access to the Guacamole server, thus
providing this ability is equivalent to granting your users those privileges.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-38">GUACAMOLE-38</a> - On-Demand connection</li>
</ul>

<h3 id="improved-keyboard-handling--support-for-dead-keys">Improved keyboard handling / Support for dead keys</h3>

<p>Multiple improvements have been made to keyboard handling, including bug fixes
for Mac and iOS and support for dead keys.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-161">GUACAMOLE-161</a> - Handle CapsLock events properly on Mac OS</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-232">GUACAMOLE-232</a> - Stuck keys iPad/Bluetooth keyboard (Return/Backspace/Space)</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-352">GUACAMOLE-352</a> - Add support for dead keys</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-447">GUACAMOLE-447</a> - Certain keys fail for external keyboards on iOS Safari</li>
</ul>

<h3 id="automatic-connection-behavior">Automatic connection behavior</h3>

<p>Guacamole will automatically connect upon login for users that have access to
only a single connection, skipping the home screen. This feature has been
tweaked slightly so that it applies only to non-administrative users.  Users
with access to Guacamole’s administrative interface will now see the home
screen and will not be automatically connected.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-508">GUACAMOLE-508</a> - Automatically connect only if user lacks access to settings</li>
</ul>

<h3 id="support-for-renaming-rdp-drive-and-printer">Support for renaming RDP drive and printer</h3>

<p>By default, the filesystem and printer made available within RDP connections
are named “Guacamole Filesystem” and “Guacamole Printer” respectively. Support
has been added to override these names with <a href="/doc/1.0.0/gug/configuring-guacamole.html#rdp-device-redirection">the <code class="language-plaintext highlighter-rouge">drive-name</code> and
<code class="language-plaintext highlighter-rouge">printer-name</code>
parameters</a>
respectively.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-445">GUACAMOLE-445</a> - Allow RDP printer name to be configured</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-446">GUACAMOLE-446</a> - Allow RDP drive name to be configured</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-523">GUACAMOLE-523</a> - Use client_name for redirected devices</li>
</ul>

<h3 id="configurable-terminal-color-schemes">Configurable terminal color schemes</h3>

<p>The Guacamole terminal now allows for finer control of terminal color
schemes by allowing for the individual colors of a scheme to be customized
through <a href="/doc/1.0.0/gug/configuring-guacamole.html#ssh-display-settings">the existing <code class="language-plaintext highlighter-rouge">color-scheme</code>
parameter</a>. The
behavior of this parameter is the same for both SSH and telnet.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-470">GUACAMOLE-470</a> - Make individual terminal colors configurable through “color-scheme” parameter</li>
</ul>

<h3 id="optional-recording-of-input-events">Optional recording of input events</h3>

<p>Guacamole has supported session recording for quite some time, but did not
record input events (mouse movement/clicks, keyboard input, etc.). This meant
that the mouse cursor could not be rendered in recording playback (as the mouse
position information from mouse events was not included) and session recording
could not be used for some auditing purposes that required logging of key
events.</p>

<p>Options are now available for capturing input events during session
recording. For security and privacy reasons, only mouse events are captured
within session recordings by default. Capture of keyboard events can be
manually enabled, and capture of mouse events can be manually disabled.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-313">GUACAMOLE-313</a> - Allow input events within session recording</li>
</ul>

<h3 id="ssh-host-key-verification">SSH host key verification</h3>

<p>SSH host key verification is now implemented and can be enabled and configured
within Guacamole. In the past, Guacamole has not performed any SSH host key
checking, and version 1.0.0 introduces this capability.</p>

<p>For compatibility with past releases, this functionality is still disabled by
default. If known host keys are not provided, Guacamole will continue to behave
as it has in the past and will allow the connection to succeed, though a
warning will be logged.</p>

<p>If host keys <em>are</em> provided (either in <a href="/doc/1.0.0/gug/configuring-guacamole.html#ssh-host-verification">an <code class="language-plaintext highlighter-rouge">ssh_known_hosts</code> file within the
<code class="language-plaintext highlighter-rouge">GUACAMOLE_HOME</code> directory</a>
on the server running guacd, or by passing <a href="/doc/1.0.0/gug/configuring-guacamole.html#ssh-network-parameters">the <code class="language-plaintext highlighter-rouge">host-key</code>
parameter</a> to
the connection with the key of the specific server), host key checking will be
strictly enforced and the connection will only succeed if the host key matches.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-527">GUACAMOLE-527</a> - Add parameter for specifying known SSH/SFTP server host key</li>
</ul>

<h3 id="automatic-detection-of-network-issues">Automatic detection of network issues</h3>

<p>The Guacamole web application will now periodically check the responsiveness of
the network connection, displaying a warning if the network appears unstable.</p>

<p>Downstream web applications which leverage the Guacamole API should handle the
<code class="language-plaintext highlighter-rouge">Guacamole.Tunnel.State.UNSTABLE</code> tunnel state in their tunnel’s
<a href="/doc/guacamole-common-js/Guacamole.Tunnel.html#event:onstatechange"><code class="language-plaintext highlighter-rouge">onstatechange</code></a>
handler to provide similar behavior, if desired.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-567">GUACAMOLE-567</a> - Network connection problem acknowledgement/feedback</li>
</ul>

<h3 id="support-for-configuring-guacamole-with-environment-variables">Support for configuring Guacamole with environment variables</h3>

<p>Support has been added for specifying any of the properties supported in the
<a href="/doc/1.0.0/gug/configuring-guacamole.html#initial-setup"><code class="language-plaintext highlighter-rouge">GUACAMOLE_HOME/guacamole.properties</code></a>
file by setting environment variables that correspond to those properties. The
name of the environment variable for any particular property is the name of the
property in uppercase with all dashes replaced with underscores.</p>

<p>For security reasons, the <code class="language-plaintext highlighter-rouge">enable-environment-properties</code> property must be set
to <code class="language-plaintext highlighter-rouge">true</code> for reading of properties from environment variables to be enabled.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-464">GUACAMOLE-464</a> - Extension configuration properties from the OS environment</li>
</ul>

<h3 id="improvements-to-guacamoleguacd-and-guacamoleguacamole-docker-images">Improvements to <code class="language-plaintext highlighter-rouge">guacamole/guacd</code> and <code class="language-plaintext highlighter-rouge">guacamole/guacamole</code> Docker images</h3>

<p>Many improvements have been made to the Docker support files for building and
running Guacamole within Docker containers. Most notable among these is that
the base for the guacd Docker image has been changed from CentOS 7 to the
latest Debian stable. This allows for more recent, but still stable, versions
of libraries to be used to support the various protocols and features of guacd.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-42">GUACAMOLE-42</a> - Support setting guacd log level on Docker container</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-407">GUACAMOLE-407</a> - Update guacd Docker image to build against more recent dependencies</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-450">GUACAMOLE-450</a> - Change Tomcat Version in Dockerfile to major release</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-553">GUACAMOLE-553</a> - Docker image need a new MySQL JDBC driver for MySQL 8.0</li>
</ul>

<h3 id="general-usability-improvements">General usability improvements</h3>

<p>Improvements to usability have been made in order to address issues reported by
users. Guacamole now supports Ctrl-Alt-End as an alternative shortcut for
sending Ctrl-Alt-Delete to remote systems. The zoom level of the client display
can be specified more granularly, connections are easier to select within in
the web interface, and guacd now provides a flag for printing the build
version.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-113">GUACAMOLE-113</a> - Add Ctrl+Alt+Del hotkey</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-152">GUACAMOLE-152</a> - Difficult to reach specific zoom levels</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-304">GUACAMOLE-304</a> - Clicking area to open connection</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-351">GUACAMOLE-351</a> - Version parameter for guacd</li>
</ul>

<h3 id="general-improvements-to-terminal-behavior">General improvements to terminal behavior</h3>

<p>Compatibility of Guacamole’s terminal emulator has been improved, particularly
when dealing with non-Linux operating systems. Parameters have been added for
configuring the terminal type reported to the remote system, and for adjusting
the control code sent for backspace. The terminal has also been adjusted to hide
escape sequences and control codes that need not be supported but which were
previously incorrectly printed to the screen.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-269">GUACAMOLE-269</a> - Add support for alternative backspace/delete control codes</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-564">GUACAMOLE-564</a> - Hide APC escape sequence for terminal</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-565">GUACAMOLE-565</a> - Add terminal type parameter</li>
</ul>

<h3 id="support-for-systemd">Support for systemd</h3>

<p>The guacamole-server build now includes an optional systemd init script to
allow for automatic startup on distributions that have moved from traditional
init scripts to systemd.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-30">GUACAMOLE-30</a> - Add Systemd init script for guacd-server</li>
</ul>

<h3 id="control-of-rdp-bitmap-and-glyph-caching">Control of RDP bitmap and glyph caching</h3>

<p>Parameters have been added to RDP connections that allow for <a href="/doc/1.0.0/gug/configuring-guacamole.html#rdp-perf-flags">controlling how
the RDP protocol behaves for caching bitmaps, glyphs, and other off-screen
data</a>. The default
behavior remains unchanged, with caching of all of these items enabled, however
these parameters are available to workaround issues if your RDP server handles
such caching incorrectly.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-448">GUACAMOLE-448</a> - Add parameters for controlling RDP bitmap/glyph/off-screen caching</li>
</ul>

<h2 id="internationalization">Internationalization</h2>

<h3 id="additional-rdp-keymaps">Additional RDP keymaps</h3>

<p>Several keymaps have been added or updated to better support RDP servers with
differing keyboard layouts. As always, bear in mind that <a href="/faq/#does-guacamole-support-my-keyboard-layout">the client side of
Guacamole is always independent of keyboard layout</a>.
Additional keyboard layouts for RDP are mainly of benefit for enabling the
typing of certain characters if your RDP server does not support Unicode
events, and to ensure correct translation of key event to RDP scancode if the
keyboard layout of the RDP server is not the default (US English).</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-233">GUACAMOLE-233</a> - Add Spanish keymap for RDP</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-273">GUACAMOLE-273</a> - Add Portuguese Brazilian keymap for RDP</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-434">GUACAMOLE-434</a> - Add UK English keymap for RDP</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-481">GUACAMOLE-481</a> - Add Turkish Q keymap for RDP</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-517">GUACAMOLE-517</a> - Print screen key definition missing from RDP base keymap</li>
</ul>

<h3 id="spanish-translation-of-web-interface">Spanish translation of web interface</h3>

<p>The entire web interface has been translated into Spanish, including the
on-screen keyboard. Spanish will automatically be selected if accessing
Guacamole from a browser whose default language is set to Spanish. The language
can also be <a href="/doc/gug/using-guacamole.html#display-language">manually selected</a>
within Guacamole’s preferences.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-463">GUACAMOLE-463</a> - Spanish translation for Guacamole client</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-530">GUACAMOLE-530</a> - Add Spanish on screen keyboard</li>
</ul>

<h2 id="bug-fixes">Bug fixes</h2>

<h3 id="hostname--desktop-name-regression">Hostname / desktop name regression</h3>

<p>An issue was corrected where the hostname or desktop name of VNC and RDP
connections replaced the connection name on the tab or window title in the
browser. The connection name is now always displayed for VNC and RDP.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-502">GUACAMOLE-502</a> - Hostname / desktop name replaces connection name</li>
</ul>

<h3 id="general-connection-stability">General connection stability</h3>

<p>Several issues potentially affecting connection stability have been addressed.
Additional safeguard measures have also been put in place to ensure that
connection processes are automatically killed and cleaned up if an unknown
issue causes the process to become unresponsive.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-324">GUACAMOLE-324</a> - Incorrect buffer used in socket write</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-384">GUACAMOLE-384</a> - Terminal writes during disconnect may segfault</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-424">GUACAMOLE-424</a> - VNC client segfaults if provided password is incorrect</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-489">GUACAMOLE-489</a> - Secondary socket of “tee” socket is not threadsafe</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-533">GUACAMOLE-533</a> - Automatically kill wayward guacd processes</li>
</ul>

<h3 id="issues-with-database-authentication-behavior-and-sql-queries">Issues with database authentication behavior and SQL queries</h3>

<p>The new SQL Server support introduced with 0.9.14 leveraged SQL syntax that was
not compatible with SQL Server 2008 and later, and contained a bug which
resulted in the login history query failing after several history entries
existed. These issues have been fixed.</p>

<p>A usability issue where users with disabled accounts would be shown a home
screen (albeit entirely blank) has also been fixed, and handling of the
hostname/address logged for user and connection access history has been
updated to be consistent across both underlying tables.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-505">GUACAMOLE-505</a> - Individual user query fails after two or more login history entries exist</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-525">GUACAMOLE-525</a> - Creating user results in “Incorrect syntax near ‘LIMIT’”</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-529">GUACAMOLE-529</a> - Despite the fact user account is disabled, user account can access to a welcome blank screen</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-540">GUACAMOLE-540</a> - Discrepancy with remote_host between tables</li>
</ul>

<h3 id="incorrect-status-reported-for-sessions-closed-by-rdp-server">Incorrect status reported for sessions closed by RDP server</h3>

<p>Guacamole would previously incorrectly report that an RDP server was
unavailable when the connection was actually closed by the RDP server due to
another user starting a conflicting desktop session. As the web application will
automatically attempt to reconnect if the RDP server is reported as
unavailable (under the assumption that the condition is transient and the
server may eventually become available), this could cause users to repeatedly
kick each other out.</p>

<p>This has been fixed for 1.0.0. Disconnects due to conflicting RDP sessions
should now be handled correctly.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-484">GUACAMOLE-484</a> - UPSTREAM_UNAVAILABLE incorrectly reported for sessions closed by RDP server</li>
</ul>

<h3 id="cas-authorization-uri-derived-incorrectly">CAS authorization URI derived incorrectly</h3>

<p>Guacamole’s CAS authentication has been corrected to more properly comply with
the CAS specification. The <code class="language-plaintext highlighter-rouge">/login</code> portion of the URI used for logins is
required by the specification but was previously omitted by Guacamole. This is
tolerated by some CAS implementations, but not by all. CAS implementations
which require this should now work as expected with Guacamole.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-457">GUACAMOLE-457</a> - CAS authentication provider omits login URI</li>
</ul>

<h3 id="build-issues-for-guacamole-server">Build issues for guacamole-server</h3>

<p>Issues which broke the guacamole-server build on some platforms have now been
fixed. In particular, Guacamole should now build correctly on systems having
GCC 7.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-485">GUACAMOLE-485</a> - pango is required with pango support disabled</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-500">GUACAMOLE-500</a> - Terminal build fails against GCC 7</li>
</ul>

<h3 id="fixes-for-guacenc-behavior-and-protocol-implementation">Fixes for guacenc behavior and protocol implementation</h3>

<p>Previous releases of the “guacenc” utility (part of guacamole-server) produced
incorrect error messages and erratic behavior under certain conditions. These
issues have been corrected.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-307">GUACAMOLE-307</a> - guacenc reports “Layer index out of bounds: -1”</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-482">GUACAMOLE-482</a> - Return value of guacenc_video_flush_frame() not handled</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-490">GUACAMOLE-490</a> - guacenc does not take channel mask into account for image streams</li>
</ul>

<h3 id="issues-specific-to-internet-explorer">Issues specific to Internet Explorer</h3>

<p>Several issues specific to Internet Explorer which either caused problems or
had the potential to impact compatibility across versions of Internet Explorer
have been fixed.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-316">GUACAMOLE-316</a> - IE Compatibility mode doesn’t work</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-347">GUACAMOLE-347</a> - IE may lack window.location.origin</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-348">GUACAMOLE-348</a> - Stream download iframe may not exist in DOM at time of removal</li>
</ul>

<h3 id="use-of-deprecated-navigatorgetusermedia">Use of deprecated <code class="language-plaintext highlighter-rouge">navigator.getUserMedia()</code></h3>

<p>The <code class="language-plaintext highlighter-rouge">navigator.getUserMedia()</code> method used by Guacamole’s support for audio
input has been deprecated. Guacamole has been updated to no longer rely upon
that method.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-237">GUACAMOLE-237</a> - navigator.getUserMedia() deprecated</li>
</ul>

<h3 id="incorrect-documentation-for-rdp-load-balance-info-parameter">Incorrect documentation for RDP <code class="language-plaintext highlighter-rouge">load-balance-info</code> parameter</h3>

<p>The <a href="/doc/1.0.0/gug/configuring-guacamole.html#rdp-connection-broker"><code class="language-plaintext highlighter-rouge">load-balance-info</code> parameter</a>
was incorrectly documented as <code class="language-plaintext highlighter-rouge">load-balancing-info</code>. The correct parameter name
is indeed <code class="language-plaintext highlighter-rouge">load-balance-info</code>. This has been fixed in the documentation.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-427">GUACAMOLE-427</a> - RDP “load-balance-info” parameter incorrectly documented</li>
</ul>

<h3 id="erroneous-inclusion-of-guaclog-binary-in-source-tree">Erroneous inclusion of “guaclog” binary in source tree</h3>

<p>The “guaclog” binary was accidentally included in the source tree of the git
repository. It has been removed.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-492">GUACAMOLE-492</a> - guaclog binary erroneously included in source tree</li>
</ul>

<h2 id="platform--api-changes">Platform / API changes</h2>

<h3 id="java-8-or-later-is-now-required"><strong>Java 8 or later is now required</strong></h3>

<p>As noted in <a href="#deprecation--compatibility-notes">the compatibility section below</a>,
the Guacamole web application now requires Java version 1.8 or later for both
the build and at runtime. The core Java library, guacamole-common, remains
compatible with Java 1.6, however Java 1.8 is still required for the overall
guacamole-client build.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-497">GUACAMOLE-497</a> - Ensure guacamole-client source is compatible with Java 9</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-635">GUACAMOLE-635</a> - Build against and require Java 1.8</li>
</ul>

<h3 id="guacamole-no-longer-uses-cookies">Guacamole no longer uses cookies</h3>

<p>The Guacamole web application no longer uses cookies at all, instead relying on
the browser’s local storage.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-549">GUACAMOLE-549</a> - Store auth token within localStorage</li>
</ul>

<h3 id="removal-of-noauth-and-other-deprecated-components">Removal of NoAuth and other deprecated components</h3>

<p>Several components that were previously marked as deprecated have been
removed entirely from the code base. This includes the NoAuth extension,
several classes and functions, and several old properties. The use of any of
these components would previously have resulted in warnings. They will no
longer be available from this point forward, and continuing to use the
deprecated properties will silently have no effect.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-493">GUACAMOLE-493</a> - Remove the NoAuth extension entirely</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-494">GUACAMOLE-494</a> - Remove support for old, deprecated properties</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-495">GUACAMOLE-495</a> - Remove support for old, deprecated portions of API</li>
</ul>

<h3 id="improvements-to-extension-api">Improvements to extension API</h3>

<p>The extension API has been updated to make development and maintenance of
extensions easier and more consistent. The error status codes sent by the REST
API are now derived from the exceptions thrown, allowing extensions to control
the exact code sent. Dependency precedence has been updated so that extensions
always see the classes they bundle, even if the web application bundles a
different version of the same class. Base implementations of the
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html"><code class="language-plaintext highlighter-rouge">UserContext</code></a>
and <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html"><code class="language-plaintext highlighter-rouge">AuthenticationProvider</code></a>
interfaces have been provided, removing the need to fully implement these
interfaces when writing an extension.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-499">GUACAMOLE-499</a> - REST API Error Codes should come from GuacamoleStatus</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-541">GUACAMOLE-541</a> - Webapp dependencies take precedence over bundled extension dependencies</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-542">GUACAMOLE-542</a> - Provide base implementations of UserContext and AuthenticationProvider</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-566">GUACAMOLE-566</a> - Add RESTExceptionWrapper support for extensions</li>
</ul>

<h3 id="web-application-updated-to-angularjs-169">Web application updated to AngularJS 1.6.9</h3>

<p>The AngularJS library included with the Guacamole web application was updated
from 1.3.16 to 1.6.9. Several parts of the web application were reworked for
compatibility with this update, including the handling HTTP requests and
responses.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-526">GUACAMOLE-526</a> - Update Guacamole-Client Webapp to Angular 1.6.9</li>
</ul>

<h3 id="improvements-to-javascript-tunnel-api">Improvements to JavaScript tunnel API</h3>

<p>The tunnel implementations provided by Guacamole’s JavaScript API have been
updated to allow arbitrary HTTP headers to be included in the connection
request (where supported by the underlying transport), and to allow the same
instance of the tunnel to be reused following disconnect.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-431">GUACAMOLE-431</a> - Tunnel implementations handles close only once</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-437">GUACAMOLE-437</a> - Allow to configure custom headers for Guacamole tunnels</li>
</ul>

<h1 id="deprecation--compatibility-notes">Deprecation / Compatibility notes</h1>

<p>As of 1.0.0, the following changes have been made which affect compatibility
with past releases:</p>

<h2 id="java-8-or-later-is-now-required-1"><strong>Java 8 or later is now required</strong></h2>

<p>Most of the Java components of the Guacamole Client have been updated to
require Java 1.8 for both compile and runtime. This decision was made based on
the fact that many support libraries are moving toward requiring later versions
of Java, that Java 1.8 has been out and stable for many years, and that Java
1.6 and 1.7 have ceased receiving public updates.</p>

<p>The only exception to this is the core Java API, guacamole-common, which
continues to maintain compatibility with Java 1.6.</p>

<h2 id="database-schema-changes">Database schema changes</h2>

<p>Significant changes have been made to the schemas for all of the JDBC
authentication modules (MySQL, PostgreSQL, and SQL Server).  Among those
changes are the addition of support for user groups and the changes
required to support those within the database modules (including the
“entity” as an overall type for both users and groups).</p>

<p>Users of any of the database authentication modules will need to run the
<code class="language-plaintext highlighter-rouge">upgrade-pre-1.0.0.sql</code> script specific to their chosen database as part
of the move from earlier versions of Guacamole to 1.0.0.  More thorough
instructions for this process can be found in the
<a href="/doc/gug/jdbc-auth.html">database authentication documentation</a>.</p>

<h2 id="hostname-logging-within-database">Hostname logging within database</h2>

<p>The hostname/address of users logged by the database authentication backend is
now determined entirely by the servlet container. The database authentication
will not manually parse the <code class="language-plaintext highlighter-rouge">X-Forwarded-For</code> header, and will instead rely on
the servlet container to perform any such parsing.</p>

<p>If proxying Guacamole, the configuration of your servlet container should be
updated to handle the headers set by your proxy. For Apache Tomcat, this is
accomplished with a <a href="https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/valves/RemoteIpValve.html"><code class="language-plaintext highlighter-rouge">RemoteIpValve</code></a>
in your <code class="language-plaintext highlighter-rouge">server.xml</code>.</p>

<p>Logging of hostnames/addresses by Guacamole during the authentication process
(as would be parsed by tools like fail2ban) is unchanged, however you will need
to update the pattern if <code class="language-plaintext highlighter-rouge">RemoteIpValve</code> or similar are used, as the address of
interest will likely be the rightmost address. If the user is not behind any
additional, untrusted proxies, the address of interest will be the <em>only</em>
address.</p>

<h2 id="removal-of-deprecated-noauth-extension">Removal of deprecated NoAuth extension</h2>

<p>The NoAuth extension has been <a href="/releases/0.9.13-incubating/#noauth-now-deprecated">deprecated since
0.9.13-incubating</a>, and has
now been removed from Guacamole’s codebase.</p>

<h2 id="removal-of-deprecated-properties">Removal of deprecated properties</h2>

<p>The following properties have been deprecated for quite some time, and
have been removed in the 1.0.0 release.</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">basic-user-mapping</code></li>
  <li><code class="language-plaintext highlighter-rouge">mysql-disallow-simultaneous-connections</code></li>
  <li><code class="language-plaintext highlighter-rouge">mysql-disallow-duplicate-connections</code></li>
  <li><code class="language-plaintext highlighter-rouge">postgresql-disallow-simultaneous-connections</code></li>
  <li><code class="language-plaintext highlighter-rouge">postgresql-disallow-duplicate-connections</code></li>
</ul>

<p>Prior to the 1.0.0 release a warning would be logged regarding the deprecation
of these properties. As of this release, these properties will be silently
ignored.</p>

<h2 id="extension-api-changes">Extension API changes</h2>

<h3 id="support-for-user-groups-1">Support for user groups</h3>

<p>As noted above, one of the major changes in this release is the addition of
support for user groups. These changes center around the new
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html"><code class="language-plaintext highlighter-rouge">UserGroup</code></a>
interface and functions for accessing instances of that interface. Note that if
you are using the abstract base classes <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html"><code class="language-plaintext highlighter-rouge">AbstractUserContext</code></a>
and <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html"><code class="language-plaintext highlighter-rouge">AbstractUser</code></a>,
little to no changes will be necessary as default implementations of the
required new functions have been provided.</p>

<h4 id="retrieval-of-user-groups">Retrieval of user groups</h4>

<p>The <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html"><code class="language-plaintext highlighter-rouge">UserContext</code></a>
interface now defines a <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--"><code class="language-plaintext highlighter-rouge">getUserGroupDirectory()</code></a>
function which returns a <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html"><code class="language-plaintext highlighter-rouge">Directory&lt;UserGroup&gt;</code></a>
providing access to all user groups. If your extension does not provide user
groups, it can simply return an empty <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html"><code class="language-plaintext highlighter-rouge">SimpleDirectory&lt;UserGroup&gt;</code></a>:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@Override
public Object getUserGroupDirectory() {
    return new SimpleDirectory&lt;UserGroup&gt;();
}
</code></pre></div></div>

<h4 id="effective-group-membership">Effective group membership</h4>

<p>To allow extensions to take group membership into account, even when that
membership is dictated by a different extension, the
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html"><code class="language-plaintext highlighter-rouge">AuthenticatedUser</code></a>
class now defines a <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--"><code class="language-plaintext highlighter-rouge">getEffectiveGroups()</code></a>
function. This function should return the identifiers of all user groups that
apply to the current user. If support for user groups is not implemented by the
extension, simply return an empty set of strings:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@Override
public Set&lt;String&gt; getEffectiveUserGroups() {
    return Collections.&lt;String&gt;emptySet();
}
</code></pre></div></div>

<h4 id="effective-permissions">Effective permissions</h4>

<p>The <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html"><code class="language-plaintext highlighter-rouge">User</code></a>
interface now provides a <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html#getEffectivePermissions--"><code class="language-plaintext highlighter-rouge">getEffectivePermissions()</code></a>
function which should return an implementation of <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html"><code class="language-plaintext highlighter-rouge">Permissions</code></a>
which exposes the permissions that apply to the user, including permissions
which may be inherited through group membership. If inheritance of permissions
is not implemented by your extension, this function can simply return <code class="language-plaintext highlighter-rouge">this</code>
(as <code class="language-plaintext highlighter-rouge">User</code> extends <code class="language-plaintext highlighter-rouge">Permissions</code>):</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@Override
public Permissions getEffectivePermissions() {
    return this;
}
</code></pre></div></div>

<h4 id="exposing-group-membership">Exposing group membership</h4>

<p>The <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html"><code class="language-plaintext highlighter-rouge">User</code></a>
and <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html"><code class="language-plaintext highlighter-rouge">UserGroup</code></a>
interfaces provide multiple functions for retrieving parent groups and child
objects, if applicable. Existing implementations of the <code class="language-plaintext highlighter-rouge">User</code> interface which
do not extend <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html"><code class="language-plaintext highlighter-rouge">AbstractUser</code></a>
will need to implement <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html#getUserGroups--"><code class="language-plaintext highlighter-rouge">getUserGroups()</code></a>,
a function which retrieves the immediate parent groups of the user. The
returned <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html"><code class="language-plaintext highlighter-rouge">RelatedObjectSet</code></a>
should allow for manipulation of the group relationship if the extension allows
such manipulation (and if the current user has permission to do so). Extensions
which do not implement user groups can simply return an empty set:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@Override
public RelatedObjectSet getUserGroups() {
    return RelatedObjectSet.EMPTY_SET;
}
</code></pre></div></div>

<h3 id="the-new-decoration-api">The new decoration API</h3>

<p>The <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html"><code class="language-plaintext highlighter-rouge">AuthenticationProvider</code></a>
interface now defines <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code class="language-plaintext highlighter-rouge">decorate()</code></a>
and <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code class="language-plaintext highlighter-rouge">redecorate()</code></a>
functions which allow an implementation of <code class="language-plaintext highlighter-rouge">AuthenticationProvider</code> to decorate the
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html"><code class="language-plaintext highlighter-rouge">UserContext</code></a>
instances of other extensions. After an extension returns a <code class="language-plaintext highlighter-rouge">UserContext</code>
instance, the <code class="language-plaintext highlighter-rouge">decorate()</code> (if the <code class="language-plaintext highlighter-rouge">UserContext</code> is for a new session) or
<code class="language-plaintext highlighter-rouge">redecorate()</code> (if the <code class="language-plaintext highlighter-rouge">UserContext</code> has been updated for an existing session)
functions of all other extensions are invoked to give those extensions a chance
to wrap the <code class="language-plaintext highlighter-rouge">UserContext</code>. This allows extensions to add functionality to the
objects of other extensions which may not otherwise be possible.</p>

<p>Implementations of <code class="language-plaintext highlighter-rouge">AuthenticationProvider</code> which extend
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html"><code class="language-plaintext highlighter-rouge">AbstractAuthenticationProvider</code></a>
need not implement these functions as default implementations are provided.
Implementations which do not extend <code class="language-plaintext highlighter-rouge">AbstractAuthenticationProvider</code> and which
do not decorate the <code class="language-plaintext highlighter-rouge">UserContext</code> of other extensions should simply return the
original <code class="language-plaintext highlighter-rouge">UserContext</code>:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@Override
public UserContext decorate(UserContext context,
    AuthenticationProvider authProvider, Credentials credentials) {
    return context;
}

@Override
public UserContext redecorate(UserContext decorated, UserContext context,
    AuthenticationProvider authProvider, Credentials credentials) {
    return decorate(context, authProvider, credentials);
}
</code></pre></div></div>

<h3 id="removal-of-deprecated-guacamolehome-and-guacamoleproperties-classes">Removal of deprecated <code class="language-plaintext highlighter-rouge">GuacamoleHome</code> and <code class="language-plaintext highlighter-rouge">GuacamoleProperties</code> classes</h3>

<p>The <code class="language-plaintext highlighter-rouge">GuacamoleHome</code> and <code class="language-plaintext highlighter-rouge">GuacamoleProperties</code> classes have been deprecated
since 0.9.4, having been replaced by the <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/environment/Environment.html"><code class="language-plaintext highlighter-rouge">Environment</code></a>
interface and its concrete <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html"><code class="language-plaintext highlighter-rouge">LocalEnvironment</code></a>
implementation. These classes are no longer part of the extension API.
Implementations should migrate to <code class="language-plaintext highlighter-rouge">LocalEnvironment</code>.</p>

<h3 id="deprecation-of-simpleuserdirectory-simpleconnectiondirectory-and-simpleconnectiongroupdirectory-classes">Deprecation of <code class="language-plaintext highlighter-rouge">SimpleUserDirectory</code>, <code class="language-plaintext highlighter-rouge">SimpleConnectionDirectory</code>, and <code class="language-plaintext highlighter-rouge">SimpleConnectionGroupDirectory</code> classes</h3>

<p>The <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUaweDirectory.html"><code class="language-plaintext highlighter-rouge">SimpleUserDirectory</code></a>,
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html"><code class="language-plaintext highlighter-rouge">SimpleConnectionDirectory</code></a>,
and <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html"><code class="language-plaintext highlighter-rouge">SimpleConnectionGroupDirectory</code></a>
classes have been deprecated in favor of the
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html"><code class="language-plaintext highlighter-rouge">SimpleDirectory&lt;T&gt;</code></a>
class. These classes can still be used, but will result in deprecation
warnings, and will be removed in a future release.</p>

<h3 id="deprecation-of-simpleuser-convenience-constructors">Deprecation of <code class="language-plaintext highlighter-rouge">SimpleUser</code> convenience constructors</h3>

<p>With the increasing number of permission sets available for both users and user
groups, the old convenience constructors which provided parameters for these
permission sets for the
<a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html"><code class="language-plaintext highlighter-rouge">SimpleUser</code></a>
implementation of the <a href="/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html"><code class="language-plaintext highlighter-rouge">User</code></a>
interface have been deprecated for the sake of API simplicity and consistency.</p>

<p>Implementations which use these constructors of <code class="language-plaintext highlighter-rouge">SimpleUser</code> should migrate to
extending <code class="language-plaintext highlighter-rouge">SimpleUser</code> and overriding the applicable getters instead. The
deprecated constructors will continue to work as before, however their use will
result in deprecation warnings, and they will eventually be removed from the
API.</p>

<h2 id="libguac-api-changes">libguac API changes</h2>

<h3 id="guac_protocol_send_mouse-now-requires-additional-parameters"><code class="language-plaintext highlighter-rouge">guac_protocol_send_mouse()</code> now requires additional parameters</h3>

<p>The <a href="/doc/1.0.0/libguac/protocol_8h.html#a8947056262da2f3263b9851370597622"><code class="language-plaintext highlighter-rouge">guac_protocol_send_mouse()</code></a>
function now accepts an additional <a href="/doc/1.0.0/libguac/timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea"><code class="language-plaintext highlighter-rouge">guac_timestamp</code></a>
argument representing the point in time that the mouse event occurred. Callers
of this function will now need to include an appropriate timestamp, such as the value returned by
<a href="/doc/1.0.0/libguac/timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719"><code class="language-plaintext highlighter-rouge">guac_timestamp_current()</code></a>.</p>

<h3 id="guac_instruction_max_elements-macro-definition-changed"><code class="language-plaintext highlighter-rouge">GUAC_INSTRUCTION_MAX_ELEMENTS</code> macro definition changed</h3>

<p>The value of the
<a href="/doc/1.0.0/libguac/parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46"><code class="language-plaintext highlighter-rouge">GUAC_INSTRUCTION_MAX_ELEMENTS</code></a>
has been increased from 64 to 128. This should not affect whether existing code
builds against libguac, however it does affect the size of the
<a href="/doc/1.0.0/libguac/structguac__parser.html"><code class="language-plaintext highlighter-rouge">guac_parser</code></a> structure such
that it will not be binary-compatible with older versions of libguac. The
system linker should take this into account automatically.</p>

<h2 id="java-api-guacamole-common-changes">Java API (guacamole-common) changes</h2>

<h3 id="removal-of-deprecated-guacamolesession-class">Removal of deprecated <code class="language-plaintext highlighter-rouge">GuacamoleSession</code> class</h3>

<p>The <code class="language-plaintext highlighter-rouge">GuacamoleSession</code> class has been deprecated since 0.9.9 and has now been
removed from the API. Downstream usages of this class should simply be removed;
it is entirely unnecessary and has had no effect since 0.9.9.</p>

<h3 id="change-in-definition-of-guacamolehttptunnelservletsenderror">Change in definition of <code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet.sendError()</code></h3>

<p>The definition of the <code class="language-plaintext highlighter-rouge">protected</code> function
<a href="/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-"><code class="language-plaintext highlighter-rouge">sendError()</code></a>
within <a href="/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html"><code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet</code></a>
has changed to include explicit numeric codes for the Guacamole and HTTP
statuses rather than a single
<a href="/doc/1.0.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html"><code class="language-plaintext highlighter-rouge">GuacamoleStatus</code></a>.</p>

<p>It is unlikely that this change will affect downstream implementations of
<code class="language-plaintext highlighter-rouge">GuacamoleHTTPTunnelServlet</code>, which generally will only override
<a href="/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-"><code class="language-plaintext highlighter-rouge">doConnect()</code></a>,
however any downstream implementations which <em>do</em> call or override
<code class="language-plaintext highlighter-rouge">sendError()</code> will need to be updated accordingly.</p>

<h2 id="javascript-api-changes">JavaScript API changes</h2>

<h3 id="removal-of-deprecated-guacamoleclientsetclipboard-function">Removal of deprecated <code class="language-plaintext highlighter-rouge">Guacamole.Client.setClipboard()</code> function</h3>

<p>The <code class="language-plaintext highlighter-rouge">setClipboard()</code> function of
<a href="/doc/1.0.0/guacamole-common-js/Guacamole.Client.html"><code class="language-plaintext highlighter-rouge">Guacamole.Client</code></a>
has been deprecated since 0.9.1, having been replaced by
<a href="/doc/1.0.0/guacamole-common-js/Guacamole.Client.html#createClipboardStream"><code class="language-plaintext highlighter-rouge">createClipboardStream()</code></a>,
and convenience “writer” implementations like
<a href="/doc/1.0.0/guacamole-common-js/Guacamole.StringWriter.html"><code class="language-plaintext highlighter-rouge">Guacamole.StringWriter</code></a>
which may be given the resulting
<a href="/doc/1.0.0/guacamole-common-js/Guacamole.OutputStream.html"><code class="language-plaintext highlighter-rouge">Guacamole.OutputStream</code></a>.</p>

<p><code class="language-plaintext highlighter-rouge">setClipboard()</code> has now been removed from the API. Downstream uses of
<code class="language-plaintext highlighter-rouge">setClipboard()</code> should migrate to <code class="language-plaintext highlighter-rouge">createClipboardStream()</code>.</p>

<h3 id="addition-of-guacamoletunnelstateunstable-state">Addition of <code class="language-plaintext highlighter-rouge">Guacamole.Tunnel.State.UNSTABLE</code> state</h3>

<p>In order to support changes to detecting and handling network problems within
the Guacamole connections, another tunnel state,
<code class="language-plaintext highlighter-rouge">Guacamole.Tunnel.State.UNSTABLE</code>, has been added. The tunnel enters this
state when it is still technically connected but the network connection appears
unstable and may result in disconnection.</p>

<p>Code which handles changes in tunnel state may need to be updated to take this
additional state into account if it does not currently ignore unknown states,
or that code would benefit from explicitly handling the unstable condition.</p>

<h3 id="internal-websocket-tunnel-implementation-changes">Internal WebSocket tunnel implementation changes</h3>

<p>The WebSocket tunnel (<a href="/doc/1.0.0/guacamole-common-js/Guacamole.WebSocketTunnel.html"><code class="language-plaintext highlighter-rouge">Guacamole.WebSocketTunnel</code></a>)
now uses the <a href="/doc/1.0.0/guacamole-common-js/Guacamole.Tunnel.html#.INTERNAL_DATA_OPCODE">internal tunnel opcode</a>
to <a href="https://github.com/apache/guacamole-client/blob/78f1ae1b4eac25501d532ddee94fd1d8588e56dc/guacamole-common-js/src/main/webapp/modules/Tunnel.js#L948-L952">send “ping” requests</a>
which the server side of the tunnel must respond to
<a href="https://github.com/apache/guacamole-client/blob/78f1ae1b4eac25501d532ddee94fd1d8588e56dc/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java#L321-L324">with an identical instruction</a>
to verify connection stability. Third-party reimplementations of the WebSocket
tunnel will need to be updated to do the same.</p>


    </div>

</div>

        </div>

        <!-- Footer -->
<div id="footer">
    <div class="readable-content">

        <!-- Copyrights -->
        <p class="copyright">
            Copyright &copy; 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>
