On Tue, Oct 24, 2017 at 1:10 PM, David L Napier <[email protected]> wrote:

> I'm a bit confused by the architecture in this project after reading the
> documentation.  I'm build a node.js application and hoping to utilize
> Guacamole.
>
> My questions are:
>
> Does guacamole-common-js load on the front or back end of my web
> application?
>

guacamole-common-js is used by the client side of the stack. It runs in the
browser only. There are no server-side JavaScript components.

Does guacamole-common-js connect to the Java Servlet or can it connect to
> guacd directly?  (Is the Servlet required?)
>

The client built into guacamole-common-js expects that the Guacamole
protocol handshake will be taken care of server-side. This is important
from a security perspective, to ensure that users cannot simply establish
arbitrary connections with arbitrary privileges to any remote desktop that
they please. The implementation provided for this is written in Java that
is meant to run server-side:

https://github.com/apache/incubator-guacamole-client/blob/d955fbea1adbbcd88a9a169100ebad19ef2092cb/guacamole-common/src/main/java/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.java

Typically, this would run within the tunnel servlet/endpoint, yes, with
that tunnel serving as the sole intermediary between the browser and guacd.
Again, not being able to connect to guacd directly is an important security
consideration.

Leveraging guacamole-common is the recommended way of doing this, but if
you are hard-set on not using Java, you can implement the Guacamole
protocol handshake yourself and achieve the same. The Guacamole protocol
and its handshake are documented in the manual:

http://guacamole.incubator.apache.org/doc/gug/guacamole-protocol.html

- Mike

Reply via email to