<!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™: 0.9.13-incubating</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 0.9.13-incubating
    <span class="release-type">
        
        
            (Archived)
        
    </span>
</h1>

<div class="readable-content">

    

    
        
        <div class="note">
            <p>Apache Guacamole 0.9.13-incubating is an archived release, and was
            originally released on 2017-07-30. <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/0.9.13-incubating/gug">Manual</a></li>
        
            <li><a href="/doc/0.9.13-incubating/guacamole-common">guacamole-common</a></li>
        
            <li><a href="/doc/0.9.13-incubating/guacamole-common-js">guacamole-common-js</a></li>
        
            <li><a href="/doc/0.9.13-incubating/guacamole-ext">guacamole-ext</a></li>
        
            <li><a href="/doc/0.9.13-incubating/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/0.9.13-incubating/source/guacamole-client-0.9.13-incubating.tar.gz">guacamole-client-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-client-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-client-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-client-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz">guacamole-server-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz.asc">PGP</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/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war">guacamole-0.9.13-incubating.war</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-cas-0.9.13-incubating.tar.gz">guacamole-auth-cas-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-cas-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-cas-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-cas-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-duo-0.9.13-incubating.tar.gz">guacamole-auth-duo-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-duo-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-duo-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-duo-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz">guacamole-auth-jdbc-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-header-0.9.13-incubating.tar.gz">guacamole-auth-header-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-header-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-header-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-header-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-ldap-0.9.13-incubating.tar.gz">guacamole-auth-ldap-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-ldap-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-ldap-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-ldap-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
            <tr>
                
                
                <td class="filename"><a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-noauth-0.9.13-incubating.tar.gz">guacamole-auth-noauth-0.9.13-incubating.tar.gz</a></td>
                <td class="signatures">
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-noauth-0.9.13-incubating.tar.gz.md5">MD5</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-noauth-0.9.13-incubating.tar.gz.sha">SHA</a>
                    
                        
                        <a href="https://archive.apache.org/dist/guacamole/0.9.13-incubating/binary/guacamole-auth-noauth-0.9.13-incubating.tar.gz.asc">PGP</a>
                    
                </td>
            </tr>
        
    </table>


    </div>

    <!-- Release notes -->
    <div id="release-notes">
        <h1>Release notes</h1>
        <p>The 0.9.13-incubating release features new support for CAS single sign-on,
automatic failover to connections within the same connection group, and fixes
for issues in all supported protocols. The JavaScript API has also been
extended to provide for in-browser playback of screen recordings, and the
extension API now allows custom REST services to be defined.</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="support-for-cas-single-sign-on">Support for CAS single sign-on</h2>

<p><a href="https://en.wikipedia.org/wiki/Central_Authentication_Service">Central Authentication
Service</a> (CAS),
is a single sign-on solution commonly used by universities to unify
authentication across various web applications which are otherwise independent.
The newly-implemented guacamole-auth-cas extension allows Guacamole to delegate
authentication to CAS, relying on CAS to determine the identity and validity
of each user.</p>

<p>Note that this new extension only deals with determining the identity of users
that have authenticated with CAS, and redirecting unauthenticated users to the
CAS system to authenticate. The details of the connections available to each
user must be provided via another extension, such as the <a href="/doc/0.9.13-incubating/gug/jdbc-auth.html">database
authentication</a>.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-204">GUACAMOLE-204</a> - Support CAS Single Sign On</li>
</ul>

<h2 id="correction-to-duo-documentation">Correction to Duo documentation</h2>

<p>The documentation for Guacamole’s Duo extension previously stated that Duo’s
“Auth API” was required. This is incorrect; though the “Auth API” will work,
Guacamole actually uses the “Web SDK”. This is particularly important, as Duo
recently ceased offering the “Auth API” for free, whereas the “Web SDK” is
still available for free accounts.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-219">GUACAMOLE-219</a> - Duo documentation should point to “Web SDK”, not “Auth API”</li>
</ul>

<h2 id="in-browser-playback-of-screen-recordings">In-browser playback of screen recordings</h2>

<p>Guacamole’s screen recordings are actually copies of the same exact data which
would be fed to the Guacamole client over the course of the connection, thus
the JavaScript API already had much of what was necessary to support in-browser
playback of recordings. The main things lacking were a means of reading a
Guacamole protocol stream from a static resource, and a means of seeking
backward or forward within that stream.</p>

<p>This missing API-level functionality is now provided through the new
<a href="/doc/0.9.13-incubating/guacamole-common-js/Guacamole.StaticHTTPTunnel.html"><code class="language-plaintext highlighter-rouge">Guacamole.StaticHTTPTunnel</code></a> and <a href="/doc/0.9.13-incubating/guacamole-common-js/Guacamole.SessionRecording.html"><code class="language-plaintext highlighter-rouge">Guacamole.SessionRecording</code></a> objects respectively,
and an example demonstrating this use, <a href="https://github.com/apache/guacamole-client/tree/de12b683d746129ddc8b34425ed6e40b618c91d6/doc/guacamole-playback-example">guacamole-playback-example</a>, is provided within the guacamole-client source.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-250">GUACAMOLE-250</a> - Implement support for in-browser playback of screen recordings</li>
</ul>

<h2 id="noauth-now-deprecated">NoAuth now deprecated</h2>

<p>Over the years since its introduction, the NoAuth extension has grown to become
a consistent source of issues for both users and the Guacamole development
community, and simply using the extension has become de facto bad practice. As
such, <strong>the NoAuth extension is now deprecated</strong>.</p>

<p>To ease migration away from its use, the extension remains part of the
Guacamole source and a convenience binary of the extension is provided with
this release, but its continued use is not recommended and it will eventually
be removed. <strong>Integrations of Guacamole should instead use the extension API</strong>,
or the core Guacamole API for absolute low-level control.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-256">GUACAMOLE-256</a> - Deprecate the NoAuth extension</li>
</ul>

<h2 id="sshtelnet-support-for-256-color-console-codes">SSH/telnet support for 256-color console codes</h2>

<p>Guacamole has historically supported only the subset of console codes
implemented by the Linux kernel’s built-in terminal emulator. As part of a
larger, ongoing effort to <a href="https://issues.apache.org/jira/browse/GUACAMOLE-277">achieve compatibility with
xterm</a>, support for
xterm’s 256-color console codes has been added, along with support for the
console code which changes the window title.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-265">GUACAMOLE-265</a> - Support OSC 0 for changing SSH/telnet window title</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-278">GUACAMOLE-278</a> - Add support for xterm’s 256-color control codes</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-280">GUACAMOLE-280</a> - Add support for the “faint” SGR flag</li>
</ul>

<h2 id="automatic-failover-for-connections-in-groups">Automatic failover for connections in groups</h2>

<p>In past releases, the database authentication would handle connection attempts
to connection groups by selecting the least-used connection, but would
otherwise only make one connection attempt. If that connection attempt fails
due to an error within the remote desktop, the user must manually reconnect (or
wait 15 seconds for the automatic reconnect).</p>

<p>Connection groups provided via the database authentication will now
automatically and transparently switch to the next available connection in the
group for remote desktop errors that occur early in the connection. If
graphical updates are sent prior to the error, automatic failover will not
occur.</p>

<p>This functionality has also been added at the Java API level. Extensions and
applications leveraging the Guacamole API can use the
<a href="/doc/0.9.13-incubating/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html"><code class="language-plaintext highlighter-rouge">FailoverGuacamoleSocket</code></a> class to automatically detect
and handle upstream (remote desktop) errors during the connection process.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-208">GUACAMOLE-208</a> - Expand status codes to represent common remote desktop states</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-267">GUACAMOLE-267</a> - Support health checks for connections</li>
</ul>

<h2 id="fixes-for-all-supported-protocols">Fixes for all supported protocols</h2>

<p>Several bugs with each supported protocol have been addressed. Most
significantly, issues with audio stream stability for recent versions of
Windows, and transfer of large files over RDP, the behavior of the “Alt” key
for SSH and telnet, and VNC connection stability have all been fixed.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-194">GUACAMOLE-194</a> - Double free() in guac_common_ssh_destroy_user()</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-205">GUACAMOLE-205</a> - libguac_common_ssh build fails with OpenSSL 1.1</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-206">GUACAMOLE-206</a> - Alt key combinations broken in SSH and telnet</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-218">GUACAMOLE-218</a> - Audio stops playing on Windows Server 2016</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-222">GUACAMOLE-222</a> - SFTP file handles not closed for downloads</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-257">GUACAMOLE-257</a> - Segfault in on VNC/SSH file upload if SFTP is disabled</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-262">GUACAMOLE-262</a> - Cannot connect to ESXi 6.5 VNC server</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-268">GUACAMOLE-268</a> - RDPDR file size may be truncated to 32 bits</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-282">GUACAMOLE-282</a> - Common surface transfer functions incorrect with respect to alpha channel</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-306">GUACAMOLE-306</a> - VNC may segfault during the connection process</li>
</ul>

<h2 id="defining-rest-services-via-extensions">Defining REST services via extensions</h2>

<p>Extensions can now define arbitrary REST services by implementing the new
<code class="language-plaintext highlighter-rouge">getResource()</code> function at either the
<a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html"><code class="language-plaintext highlighter-rouge">AuthenticationProvider</code></a>
<a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html"><code class="language-plaintext highlighter-rouge">UserContext</code></a>
levels, returning objects annotated with JAX-RS (JSR-311) annotations.</p>

<p>REST resources exposed at the <code class="language-plaintext highlighter-rouge">UserContext</code> level are inherently tied to the
user’s session and thus require authentication, while resources exposed at the
<code class="language-plaintext highlighter-rouge">AuthenticationProvider</code> level do not.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-289">GUACAMOLE-289</a> - Add support for declaring REST services within extensions</li>
</ul>

<h2 id="user-profile-attributes">User profile attributes</h2>

<p>The database authentication now defines additional, arbitrary attributes for
users which, if specified, are rendered within Guacamole’s user menu. These
attributes are optional - if omitted, the user menu renders as in previous
releases.</p>

<p>The additional attributes are standardized at the API level on the
<a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html"><code class="language-plaintext highlighter-rouge">User.Attribute</code></a>
object, and thus can be leveraged by any extension, producing the same effect.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-292">GUACAMOLE-292</a> - Add support for user profiles</li>
</ul>

<h2 id="support-for-filtering-ldap-users">Support for filtering LDAP users</h2>

<p>Guacamole’s LDAP support now provides an additional <code class="language-plaintext highlighter-rouge">ldap-user-search-filter</code>
property which, if specified, reduces the users that can log into Guacamole or
are displayed to administrators within the user management interface (when
combining LDAP with a MySQL or PostgreSQL database).</p>

<p>Note that this filter only affects Guacamole logins if Guacamole has been
configured to search for users prior to binding (with the <code class="language-plaintext highlighter-rouge">ldap-search-bind-dn</code>
property). If a search DN is not being used, Guacamole derives each user’s DN
directly, and thus will not apply the search filter to login attempts.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-101">GUACAMOLE-101</a> - Allow arbitrary filtering of LDAP users</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-244">GUACAMOLE-244</a> - Allow configuration of LDAP alias dereferencing</li>
</ul>

<h2 id="overriding-guacd-on-a-per-connection-basis">Overriding guacd on a per-connection basis</h2>

<p>The connection to guacd is normally defined globally within
<code class="language-plaintext highlighter-rouge">guacamole.properties</code>, but this is insufficient for deployments involving
multiple distinct guacd instances or multiple implementations of the Guacamole
protocol.</p>

<p>For cases where different instances of guacd may be spread out across the
network of remote desktop servers, or where other applications/drivers may
implement their own internal version of guacd (such as the <a href="https://issues.apache.org/jira/browse/GUACAMOLE-168">work-in-progress
X.Org driver</a>), Guacamole
now supports defining/overriding the guacd hostname, port, and encryption
method on a per-connection basis.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-189">GUACAMOLE-189</a> - Add support for per-connection guacd</li>
</ul>

<h2 id="miscellaneous-fixesimprovements">Miscellaneous fixes/improvements</h2>

<p>This latest release of Guacamole also addresses several minor JavaScript
issues, addresses potential disconnects due to system clocks which are not
monotonic (can run backwards), and fixes the Docker image sanity checks such
that database-specific environment variables need not be specified if a custom
<code class="language-plaintext highlighter-rouge">GUACAMOLE_HOME</code> is being used.</p>

<ul>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-40">GUACAMOLE-40</a> - Support TS gateway connections to RDP</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-223">GUACAMOLE-223</a> - Locking callbacks not set for guacd+SSL</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-229">GUACAMOLE-229</a> - Intervals when polling xmlhttprequests are not always cleared</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-239">GUACAMOLE-239</a> - Disconnects due to ‘backwards’ running time</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-252">GUACAMOLE-252</a> - Display jumps to top in MS Edge when Guacamole menu is opened</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-259">GUACAMOLE-259</a> - Log metrics for gauging user experience</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-281">GUACAMOLE-281</a> - GUACAMOLE_HOME not taken into account during Docker image sanity checks</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-294">GUACAMOLE-294</a> - Incorrectly positioned bracket in <code class="language-plaintext highlighter-rouge">guacTouchDrag.js</code>.</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-295">GUACAMOLE-295</a> - In Parser.js, the <code class="language-plaintext highlighter-rouge">length</code> variable is incorrectly checked for equality against NaN.</li>
  <li><a href="https://issues.apache.org/jira/browse/GUACAMOLE-301">GUACAMOLE-301</a> - Login prompt not cleared when visiting unrestricted page</li>
</ul>

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

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

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

<p>The MySQL and PostgreSQL schemas have changed, adding columns to
<code class="language-plaintext highlighter-rouge">guacamole_connection</code> (for defining the connection to guacd service
implementing the Guacamole protocol) and to <code class="language-plaintext highlighter-rouge">guacamole_user</code> (for defining
optional and arbitrary profile information).</p>

<p>Users of the database authentication will need to run the
<code class="language-plaintext highlighter-rouge">upgrade-pre-0.9.13.sql</code> script specific to their chosen database.</p>

<h2 id="deprecation-of-the-noauth-extension">Deprecation of the NoAuth extension</h2>

<p>The NoAuth extension is now deprecated. The extension remains part of the
Guacamole source and a convenience binary of the extension is provided with
this release, but its continued use is not recommended and it will eventually
be removed entirely.</p>

<p><strong>Integrations of Guacamole should instead use the extension API</strong>, or the core
Guacamole API for absolute low-level control.</p>

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

<p>Both the
<a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html"><code class="language-plaintext highlighter-rouge">AuthenticationProvider</code></a>
and
<a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html"><code class="language-plaintext highlighter-rouge">UserContext</code></a>
interfaces now define a <code class="language-plaintext highlighter-rouge">getResource()</code> function. If implemented, the returned
object will be served as a REST resource and must be annotated with JAX-RS
(JSR-311) annotations. Because this new function is defined at the interface
level, implementations of these interfaces will now need to define this
function:</p>

<ul>
  <li><a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--"><code class="language-plaintext highlighter-rouge">AuthenticationProvider.getResource()</code></a></li>
  <li><a href="/doc/0.9.13-incubating/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html#getResource--"><code class="language-plaintext highlighter-rouge">UserContext.getResource()</code></a></li>
</ul>

<p>If your extension does not need to expose its own REST resources, the function
can simply return <code class="language-plaintext highlighter-rouge">null</code>, and no such resources will be exposed:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@Override
public Object getResource() {

    // No associated REST resource
    return null;

}
</code></pre></div></div>


    </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>
