blob: 6e4021c13c7ce5191a4473d680a85079eb6238ad [file] [log] [blame]
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="/styles/main.css?s=1714581448">
<link rel="icon" type="image/svg+xml" href="/images/logos/guac-classic-logo.svg"/>
<link rel="icon" type="image/png" href="/images/logos/guac-classic-logo-64.png"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
<meta charset="UTF-8"/>
<title>Apache Guacamole™: Frequently Asked Questions</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>
<h1 class="title">Frequently Asked Questions</h1>
<!-- Content -->
<div class="readable-content">
<ul id="markdown-toc">
<li><a href="#problems" id="markdown-toc-problems">Bugs / troubleshooting</a> <ul>
<li><a href="#probably-not-a-bug" id="markdown-toc-probably-not-a-bug">Something fundamental to Guacamole isn’t working for me. Where do I report this?</a></li>
<li><a href="#test-against-latest-version" id="markdown-toc-test-against-latest-version">I have an old or modified version of Guacamole and [X] is not working. Where should I report this?</a></li>
<li><a href="#bug" id="markdown-toc-bug">I have set up the latest version successfully, however if i try [X], instead of [Y] happening as documented, [Z] happens. Where should I report this?</a></li>
<li><a href="#security" id="markdown-toc-security">I have found an issue which may have security implications. Where should I report this?</a></li>
<li><a href="#cannot-connect" id="markdown-toc-cannot-connect">I’m trying to connect to my remote desktop by it isn’t working. Why?</a></li>
<li><a href="#remote-application-broken" id="markdown-toc-remote-application-broken">I am using an application within the remote desktop under Guacamole, but the application isn’t working correctly. Can you fix Guacamole so it doesn’t break my application?</a></li>
<li><a href="#resize-rdp" id="markdown-toc-resize-rdp">When I connect via RDP, the screen size is set correctly, but it does not update if I resize the browser window. Why?</a></li>
<li><a href="#resize-vnc" id="markdown-toc-resize-vnc">When I connect via VNC, the screen size is not set correctly. It remains the same regardless of the browser window’s size. Why?</a></li>
</ul>
</li>
<li><a href="#clipboard" id="markdown-toc-clipboard">Clipboard</a> <ul>
<li><a href="#local-clipboard" id="markdown-toc-local-clipboard">Why don’t you just use the clipboard directly instead of the box in the menu?</a></li>
<li><a href="#copy-paste-events" id="markdown-toc-copy-paste-events">I see the browser has “copy” and “paste” events. Why don’t you handle these events so clipboard works?</a></li>
</ul>
</li>
<li><a href="#user-input" id="markdown-toc-user-input">Keyboard / input</a> <ul>
<li><a href="#keyboard-shortcuts" id="markdown-toc-keyboard-shortcuts">I press [keyboard shortcut] but it’s handled by my browser or operating system instead of the remote desktop. Can you fix this?</a></li>
<li><a href="#does-guacamole-support-my-keyboard-layout" id="markdown-toc-does-guacamole-support-my-keyboard-layout">Does Guacamole support my keyboard layout?</a></li>
</ul>
</li>
<li><a href="#device-redirection" id="markdown-toc-device-redirection">File transfer and device redirection</a> <ul>
<li><a href="#local-files" id="markdown-toc-local-files">I need to share files on my computer with the remote desktop. I see Guacamole has drive redirection support, but only for files accessible to the Guacamole server. How can I share local files?</a></li>
<li><a href="#local-printers" id="markdown-toc-local-printers">I want to print to my local printer. I see Guacamole has printing support, but this produces a PDF download. How do I print directly to my local printers?</a></li>
</ul>
</li>
<li><a href="#protocols" id="markdown-toc-protocols">Supported protocols</a> <ul>
<li><a href="#x11-forwarding" id="markdown-toc-x11-forwarding">Can you add support for X11 forwarding to SSH?</a></li>
<li><a href="#support-nx" id="markdown-toc-support-nx">NX is faster than VNC. Can you add support for NX?</a></li>
<li><a href="#support-x2go" id="markdown-toc-support-x2go">X2Go is faster than VNC. Can you add support for X2Go?</a></li>
</ul>
</li>
<li><a href="#development" id="markdown-toc-development">Development / integration</a> <ul>
<li><a href="#iframes" id="markdown-toc-iframes">I want to put Guacamole in an <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> but keyboard doesn’t work correctly.</a></li>
<li><a href="#integrate-auth" id="markdown-toc-integrate-auth">I want to integrate Guacamole into my application, so I’ve written a script which updates the database / XML / …</a></li>
<li><a href="#disable-auth" id="markdown-toc-disable-auth">My application already does authentication. How do I disable authentication within Guacamole?</a></li>
</ul>
</li>
</ul>
<h2 id="problems">Bugs / troubleshooting</h2>
<h3 id="probably-not-a-bug">Something fundamental to Guacamole isn’t working for me. Where do I report this?</h3>
<p>Please remember that Guacamole is used by many others without issue, and <em>the
more fundamental a problem is, the less likely it’s a bug</em>. Before assuming
that you have found a bug, perform basic troubleshooting steps to confirm that
Guacamole itself is the <em>only</em> factor affecting whether things work correctly:</p>
<ul>
<li>Check Guacamole’s logs for errors or warnings related to your configuration.
These logs are within the logs of your servlet container, such as Apache
Tomcat. Common locations are <code class="language-plaintext highlighter-rouge">/var/log/tomcat/catalina.out</code> or within the
systemd journal (accessed via <code class="language-plaintext highlighter-rouge">journalctl</code>).</li>
<li>Check guacd’s logs for errors or warnings and and verify that guacd is
actually running. Messages from guacd are logged to syslog, commonly located
at <code class="language-plaintext highlighter-rouge">/var/log/syslog</code>, <code class="language-plaintext highlighter-rouge">/var/log/messages</code>, or within the systemd journal
(accessed via <code class="language-plaintext highlighter-rouge">journalctl</code>).</li>
<li>Verify that your remote desktop server is actually accessible from the
Guacamole server using a different remote desktop client.</li>
<li>Verify that the configuration parameters given for the remote desktop
connection (including any credentials) are correct.</li>
<li>Walk through <a href="/doc/gug/installing-guacamole.html">the installation steps in our official
documentation</a> and verify that what you
have done matches what has been documented.</li>
</ul>
<h3 id="test-against-latest-version">I have an old or modified version of Guacamole and [X] is not working. Where should I report this?</h3>
<p>We cannot look into issues which have not actually been reproduced in the
latest version of our code. If the problem you’re experiencing has only
been reproduced in an older or modified version of Guacamole, the chance is
high that the problem has either already been addressed (even if you cannot
find a bug report which specifically covers the issue) or that the problem is
due to the difference between your code and upstream (even if you are
absolutely positive this is impossible).</p>
<p>Before reporting an issue upstream, please confirm that the issue exists within
the latest version of the upstream code.</p>
<h3 id="bug">I have set up the latest version successfully, however if i try [X], instead of [Y] happening as documented, [Z] happens. Where should I report this?</h3>
<p>We use JIRA to track all known issues and feature requests. If you have found a
bug, please open a new issue in the ASF’s JIRA against the “GUACAMOLE” project:</p>
<p><a href="https://issues.apache.org/jira/browse/GUACAMOLE/">https://issues.apache.org/jira/browse/GUACAMOLE/</a></p>
<h3 id="security">I have found an issue which may have security implications. Where should I report this?</h3>
<p>If you have found an issue which may have security implications, <strong>please
follow <a href="https://en.wikipedia.org/wiki/Responsible_disclosure">responsible
disclosure</a> practices</strong>:</p>
<ul>
<li>Report the issue to us privately, either to the private security mailing list
of the <a href="https://www.apache.org/security/">ASF Security Team</a> or the
<a href="mailto:security@guacamole.apache.org">security@guacamole.apache.org</a> mailing list.</li>
<li>Do not disclose or discuss the issue in a public forum until the Apache
Guacamole project has addressed the issue and made an <a href="/security/">announcement of the
vulnerability</a>, or until it has been determined not to be a
vulnerability at all.</li>
</ul>
<p>Both the mailing lists and JIRA are public forums and should not be used for
issues with potential security implications. If in doubt, please err on the
side of caution and report the issue privately.</p>
<h3 id="cannot-connect">I’m trying to connect to my remote desktop by it isn’t working. Why?</h3>
<p>If you can access Guacamole but cannot connect to your remote desktop, the
relevant log messages will be from guacd - the component of the Guacamole stack
which actually handles the low-level connections to remote desktops. Check
guacd’s logs for errors or warnings and verify that guacd is actually running.</p>
<p>Messages from guacd are logged to syslog, which is commonly located at
<code class="language-plaintext highlighter-rouge">/var/log/syslog</code>, <code class="language-plaintext highlighter-rouge">/var/log/messages</code>, or within the systemd journal (accessed
via <code class="language-plaintext highlighter-rouge">journalctl</code>). You should also verify that your remote desktop server is
actually accessible from the Guacamole server (using a different remote desktop
client), and that the configuration parameters given for the remote desktop
connection are correct (even if you are positive that you typed them
correctly).</p>
<h3 id="remote-application-broken">I am using an application within the remote desktop under Guacamole, but the application isn’t working correctly. Can you fix Guacamole so it doesn’t break my application?</h3>
<p>No, Guacamole cannot affect your application in this way. The fact that you are
using Guacamole to access the remote desktop has no bearing on whether
applications running under that remote desktop function correctly. If an
application within the remote desktop is malfunctioning, the problem lies
within that application.</p>
<h3 id="resize-rdp">When I connect via RDP, the screen size is set correctly, but it does not update if I resize the browser window. Why?</h3>
<p>RDP inherently only supports changing screen size when initially connecting. In
most cases, the screen size of the remote desktop cannot be altered except
when the connection is established, and changing the screen size requires
reconnecting.</p>
<h3 id="resize-vnc">When I connect via VNC, the screen size is not set correctly. It remains the same regardless of the browser window’s size. Why?</h3>
<p>VNC only supports changing the screen size from within the remote desktop, as
the screen size is dictated by the VNC server. The client side of a VNC
connection cannot dictate the size of the session.</p>
<p>If your VNC server supports changing the screen size of an an active session,
you should be able to do so using standard configuration tools within the
remote desktop, such as the display settings of your desktop environment or
the “xrandr” utility.</p>
<h2 id="clipboard">Clipboard</h2>
<h3 id="local-clipboard">Why don’t you just use the clipboard directly instead of the box in the menu?</h3>
<p>Guacamole actually already attempts to do this leveraging the <a href="https://www.w3.org/TR/clipboard-apis/">Clipboard
API</a> defined by the W3C, with support
for the asynchronous version of this API added via
<a href="https://issues.apache.org/jira/browse/GUACAMOLE-559">GUACAMOLE-559</a>. Browsers
vary in their level of support for this API, and some only provide access to
the clipboard under very strict circumstances.</p>
<p>The following browsers are known to support clipboard access:</p>
<ul>
<li>Google Chrome version 66 and later, Microsoft Edge version 79 or later (via the <a href="https://www.w3.org/TR/clipboard-apis/#async-clipboard-api">Asynchronous Clipboard API</a>)</li>
<li>Mozilla Firefox 63 or later (write to clipboard only)</li>
<li>Older versions of Google Chrome using the third-party <a href="https://chrome.google.com/webstore/detail/clipboard-permission-mana/ipbhneeanpgkaleihlknhjiaamobkceh">Clipboard Permission Manager extension</a></li>
<li>IE10 and IE11 (via the older, synchronous version of the API)</li>
</ul>
<p>This can be expected to change as the asynchronous version of the clipboard API
gains wider adoption.</p>
<h3 id="copy-paste-events">I see the browser has “copy” and “paste” events. Why don’t you handle these events so clipboard works?</h3>
<p>As much as this might seem like a good idea at first, it is extremely
problematic. In practice, doing so does not work, and actually causes even
more confusion:</p>
<ul>
<li>
<p>The “copy” and “paste” events can only be relied upon in response to the
keyboard shortcuts which cause copy/paste actions on the local machine. Even
assuming these keyboard shortcuts can be reliably recognized (regardless of
platform-specific differences in what keys are used to copy/paste), allowed
to turn into clipboard events, and finally sent through to the remote
desktop, this is still tied to the keyboard. <strong>Attempts to copy/paste using
the mouse will fail.</strong></p>
</li>
<li>
<p><strong>Different platforms use different keyboard shortcuts for copy/paste</strong>, as
do different applications within those platforms. The keyboard shortcut
required to use the clipboard within the remote desktop cannot be guaranteed
to match the shortcut which would result in clipboard events locally, nor
can the necessary shortcut be reliably predicted and translated.</p>
</li>
<li>
<p><strong>The copy operation does not occur instantaneously</strong>, but the browser
“copy” event requires that clipboard data be set only while the event is
being handled (within the main thread). Even assuming that the other
problems above are not an issue, there is no stable, non-deprecated means of
blocking the main thread such that the clipboard can still be set once the
data does become available.</p>
</li>
</ul>
<p>While the “copy” and “paste” events can be useful for traditional web
applications, the above issues make them useless for a web application
implementing remote desktop like Guacamole. Instead, we use the <a href="https://www.w3.org/TR/clipboard-apis/">Clipboard
API</a> defined by the W3C, and rely on
the browser to provide its own method of granting access to the clipboard.</p>
<h2 id="user-input">Keyboard / input</h2>
<h3 id="keyboard-shortcuts">I press [keyboard shortcut] but it’s handled by my browser or operating system instead of the remote desktop. Can you fix this?</h3>
<p>Guacamole actually already attempts to handle all keyboard events. However, if
your browser or operating system reserve some keyboard shortcuts for their own
use. Keyboard events propagate from the operating system level, to the browser
level, and finally into JavaScript where Guacamole resides. Guacamole can only
take control of a keyboard event if each level above Guacamole allows it to do
so.</p>
<p>Most browsers now provide a means of bookmarking a web application as a
shortcut on the desktop or home screen such that it behaves more like a native
application, lacks the normal URL bar, etc. In these cases, the browser will
often allow the application to take control of additional keyboard shortcuts
which would normally be reserved for the browser. If you are running into this
problem, or simply want to use Guacamole as if it were a native application,
this is definitely worth a try.</p>
<h3 id="does-guacamole-support-my-keyboard-layout">Does Guacamole support my keyboard layout?</h3>
<p>Guacamole is actually independent of keyboard layout, and will send the true
local identity of the key pressed. The behavior of each key within the remote
desktop should identically match the local behavior of that key.</p>
<p>This holds true for most of Guacamole’s supported protocols, but things get
more complex for RDP. Unlike Guacamole, RDP uses scancodes to represent each
key, which are a numeric representation of that key’s location, not its
identity. To translate the identity of the key into the scancode required by
your RDP server, Guacamole must know the keyboard layout of your RDP server,
and must have explicit support for that keyboard layout.</p>
<p><strong>This does not mean that your RDP server must have the same keyboard layout as
the client machine.</strong> It only means that Guacamole must have a keyboard layout
definition for the layout used by the RDP server. If a user attempts to use a
keyboard with a different layout, Guacamole will translate pressed keys as
necessary to match the layout of the RDP server. If the user attempts to press
keys which are not present in the keyboard layout of the RDP server, Guacamole
will send those keys in the form of Unicode events.</p>
<p>If you are using an RDP server which does not support Unicode events (such as
XRDP), locally-pressed keys must have matching keys within the RDP server’s
keyboard layout, or they cannot be typed.</p>
<h2 id="device-redirection">File transfer and device redirection</h2>
<h3 id="local-files">I need to share files on my computer with the remote desktop. I see Guacamole has drive redirection support, but only for files accessible to the Guacamole server. How can I share local files?</h3>
<p>Unfortunately, this is not possible. JavaScript cannot access local files
directly. You <em>can</em> still share local files, but they must be manually uploaded
using Guacamole’s file transfer support.</p>
<h3 id="local-printers">I want to print to my local printer. I see Guacamole has printing support, but this produces a PDF download. How do I print directly to my local printers?</h3>
<p>This is not possible, as JavaScript cannot access local printers. While it is
technically possible to cause the PDF to automatically open a print dialog, and
on some browsers it is also possible to automatically open the PDF, this does
not currently work reliably across all platforms, and whether it will work
cannot be detected/predicted. The only reliable mechanism is the one already
implemented by Guacamole: file transfer of a standard format like PDF.</p>
<h2 id="protocols">Supported protocols</h2>
<h3 id="x11-forwarding">Can you add support for X11 forwarding to SSH?</h3>
<p>No. Because of the complexity involved in implementing an X11 server, this
wouldn’t actually work well in practice, however <a href="https://issues.apache.org/jira/browse/GUACAMOLE-168">a graphics driver
for the X.Org X11 server is currently being
written</a>. This driver
functions as a display and set of input devices which implement the Guacamole
protocol, and should be quite fast.</p>
<h3 id="support-nx">NX is faster than VNC. Can you add support for NX?</h3>
<p>No. Adding support for NX to Guacamole is not actually as straightforward as it
sounds. Unlike remote desktop protocols like VNC and RDP, the protocol referred
to as “NX” or “NXv3” is actually a method of compressing yet another protocol:
X11. As discussed above, implementing support for X11 does not actually make
sense for Guacamole, but there is an X.Org driver which achieves the same goal.</p>
<p>“NXv4”, on the other hand, is proprietary and not publicly documented. No open
source implementations of this protocol exist. Unless it becomes publicly
documented, or an open source implementation is created, it is not feasible for
support for NXv4 to be added to Guacamole.</p>
<h3 id="support-x2go">X2Go is faster than VNC. Can you add support for X2Go?</h3>
<p>No. X2Go is actually an implementation of NX, which is actually a compression
method for X11, which is too complex. This is not necessary, though - as far as
performance is concerned, there is an X.Org driver for Guacamole currently
under development which achieves the same goal (see above).</p>
<h2 id="development">Development / integration</h2>
<h3 id="iframes">I want to put Guacamole in an <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> but keyboard doesn’t work correctly.</h3>
<p>It is generally not recommended to rely on <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> to integrate Guacamole
for precisely this reason. Browser keyboard focus is problematic if an
<code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> is used, as once focus has been lost, clicking within the <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code>
will not necessarily return keyboard focus to Guacamole.</p>
<p>Rather than use an <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code>, you should instead look into leveraging
Guacamole’s JavaScript API,
<a href="/doc/gug/guacamole-common-js.html">guacamole-common-js</a>, thus integrating
Guacamole into your page directly. You might even consider building your own
web application from Guacamole’s core Java API,
<a href="/doc/gug/guacamole-common.html">guacamole-common</a>, if that would provide a
better experience.</p>
<p>If an <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> is really the only feasible solution, you can work around
keyboard focus issues by automatically refocusing the <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> whenever focus
is not explicitly on some other part of the page. For example, assuming the
variable <code class="language-plaintext highlighter-rouge">iframe</code> points to the DOM element of the <code class="language-plaintext highlighter-rouge">&lt;iframe&gt;</code> containing
Guacamole, you could refocus Guacamole by default with something like:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/**
* Refocuses the iframe containing Guacamole if the user is not already
* focusing another non-body element on the page.
*/
var refocusGuacamole = function refocusGuacamole() {
// Do not refocus if focus is on an input field
var focused = document.activeElement;
if (focused &amp;&amp; focused !== document.body)
return;
// Ensure iframe is focused
iframe.focus();
};
// Attempt to refocus iframe upon click or keydown
document.addEventListener('click', refocusGuacamole);
document.addEventListener('keydown', refocusGuacamole);
</code></pre></div></div>
<h3 id="integrate-auth">I want to integrate Guacamole into my application, so I’ve written a script which updates the database / XML / …</h3>
<p>There is no need to do this. While dynamically updating the XML or database
contents may seem invitingly simple, it is rarely the best approach. Guacamole
provides an API for integrating itself with other authentication systems and
sources of data: <a href="/doc/gug/guacamole-ext.html">guacamole-ext</a>. Rather than
attempt to keep an independent, Guacamole-specific source of data updated with
respect to your application, it is better to pull or derive that data directly
within an extension built specifically to integrate Guacamole with your
application.</p>
<p>The manual provides a basic example for <a href="/doc/gug/custom-auth.html">implementing your own Guacamole
extension</a>, and the various extensions included
as part of <a href="https://github.com/apache/guacamole-client">guacamole-client</a>
are well-commented and can serve as more in-depth demonstrations of what is
possible with this API.</p>
<p>If the ultimate goal is to tightly integrate Guacamole within your application,
and Guacamole’s authentication model and interface don’t quite match what you
intend, you should also consider <a href="/doc/gug/writing-you-own-guacamole-app.html">building your own web
application</a>. Guacamole’s is built
on a set of APIs which are maintained independently from the web application of
the same name specifically so that other applications, like yours, can be built
from the same underlying technology.</p>
<h3 id="disable-auth">My application already does authentication. How do I disable authentication within Guacamole?</h3>
<p><strong>DO NOT DISABLE GUACAMOLE’S AUTHENTICATION!</strong> There are no use cases where
this is a good idea. Even if you are absolutely positive that users cannot
access Guacamole without first being authenticated elsewhere, validating each
user’s authenticated state is the <em>only</em> safe choice. You don’t need to force
users to log in multiple times, but you <em>do</em> need to verify that they are
actually logged in.</p>
<p>If you have an application which already handles authentication, the correct
and safe way to integrate Guacamole with that application is to write a
Guacamole extension which validates each user. If the connections available to
each user will vary depending on that existing system, your extension can
dynamically derive those connections by querying your existing system, as well.</p>
</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>