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
