You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by mj...@apache.org on 2016/03/20 03:15:11 UTC

[01/50] incubator-guacamole-manual git commit: Merge pull request #35 from glyptodon/complex-ldap

Repository: incubator-guacamole-manual
Updated Branches:
  refs/heads/master [created] 87824ed4f


Merge pull request #35 from glyptodon/complex-ldap

GUAC-1115: Document new LDAP properties and behavior

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/141ff775
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/141ff775
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/141ff775

Branch: refs/heads/master
Commit: 141ff775ae96889954608ece6bea68ac8f6278b3
Parents: 63cbcb6 bc75f25
Author: James Muehlner <ja...@guac-dev.org>
Authored: Fri Oct 23 17:52:19 2015 -0700
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Fri Oct 23 17:52:19 2015 -0700

----------------------------------------------------------------------
 src/chapters/jdbc-auth.xml |   5 --
 src/chapters/ldap-auth.xml | 117 ++++++++++++++++++++++++++--------------
 src/chapters/noauth.xml    |   5 --
 3 files changed, 78 insertions(+), 49 deletions(-)
----------------------------------------------------------------------



[21/50] incubator-guacamole-manual git commit: GUAC-1435: Clean up and correct webapp tutorial with respect to recent changes.

Posted by mj...@apache.org.
GUAC-1435: Clean up and correct webapp tutorial with respect to recent changes.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/97af0b6c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/97af0b6c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/97af0b6c

Branch: refs/heads/master
Commit: 97af0b6ced0aae75d476952e3f8324349a198142
Parents: c8e8088
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Dec 15 15:02:18 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Dec 15 15:09:13 2015 -0800

----------------------------------------------------------------------
 src/chapters/yourown.xml | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/97af0b6c/src/chapters/yourown.xml
----------------------------------------------------------------------
diff --git a/src/chapters/yourown.xml b/src/chapters/yourown.xml
index 8dc9fe0..bf258b8 100644
--- a/src/chapters/yourown.xml
+++ b/src/chapters/yourown.xml
@@ -156,10 +156,13 @@
                 successfully. However, as the <filename>web.xml</filename> refers to a "welcome
                 file" called <filename>index.html</filename> (which will ultimately contain our
                 client), we need to put this in place so the servlet container will have something
-                to serve. For now, this can be anything - we will replace it later:</para>
+                to serve. This file, as well as any other future static files, belongs within
+                    <filename>src/main/webapp</filename>.</para>
+            <para>For now, this file can contain anything, since the other parts of our
+                Guacamole-driven web application are not written yet. It is a placeholder which we
+                will replace later:</para>
             <informalexample>
                 <programlisting>&lt;!DOCTYPE HTML>
-
 &lt;html>
 
     &lt;head>
@@ -167,9 +170,7 @@
     &lt;/head>
 
     &lt;body>
-
         &lt;p>Hello World&lt;/p>
-
     &lt;/body>
 
 &lt;/html></programlisting>
@@ -355,14 +356,14 @@
             <para>Create a new file, <filename>TutorialGuacamoleTunnelServlet.java</filename>,
                 defining a basic implementation of a tunnel servlet class:</para>
             <informalexample>
-                <programlisting>
-package org.glyptodon.guacamole.net.example;
+                <programlisting>package org.glyptodon.guacamole.net.example;
 
 import javax.servlet.http.HttpServletRequest;
 import org.glyptodon.guacamole.GuacamoleException;
 import org.glyptodon.guacamole.net.GuacamoleSocket;
 import org.glyptodon.guacamole.net.GuacamoleTunnel;
 import org.glyptodon.guacamole.net.InetGuacamoleSocket;
+import org.glyptodon.guacamole.net.SimpleGuacamoleTunnel;
 import org.glyptodon.guacamole.protocol.ConfiguredGuacamoleSocket;
 import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
 import org.glyptodon.guacamole.servlet.GuacamoleHTTPTunnelServlet;
@@ -388,14 +389,14 @@ public class TutorialGuacamoleTunnelServlet
         );
 
         // Return a new tunnel which uses the connected socket
-        return new GuacamoleTunnel(socket);;
+        return new SimpleGuacamoleTunnel(socket);;
 
     }
 
 }</programlisting>
             </informalexample>
             <para>Place this file in the
-                    <filename>src/main/java/net/sourceforge/guacamole/net/example</filename>
+                    <filename>src/main/java/org/glyptodon/guacamole/net/example</filename>
                 subdirectory of the project. The initial part of this subdirectory,
                     <filename>src/main/java</filename>, is the path required by Maven, while the
                 rest is the directory required by Java based on the package associated with the
@@ -496,8 +497,7 @@ public class TutorialGuacamoleTunnelServlet
                 their corresponding input events, calling whichever function of the Guacamole client
                 is appropriate to send the input event through the tunnel to guacd:</para>
             <informalexample>
-                <programlisting>        
-        ...
+                <programlisting>        ...
 
         &lt;!-- Init -->
         &lt;script type="text/javascript"> /* &lt;![CDATA[ */
@@ -524,7 +524,9 @@ public class TutorialGuacamoleTunnelServlet
                 guac.sendKeyEvent(0, keysym);
             };
 
-        /* ]]&gt; */ &lt;/script></programlisting>
+        /* ]]&gt; */ &lt;/script>
+
+        ...</programlisting>
             </informalexample>
         </section>
     </section>


[22/50] incubator-guacamole-manual git commit: GUAC-1435: Go through webapp tutorial. Verify correctness. Add resulting source.

Posted by mj...@apache.org.
GUAC-1435: Go through webapp tutorial. Verify correctness. Add resulting source.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/92f04899
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/92f04899
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/92f04899

Branch: refs/heads/master
Commit: 92f048992a7cf814bac7e2ed5c9828947946219c
Parents: 97af0b6
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Dec 15 15:11:47 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Dec 15 15:11:47 2015 -0800

----------------------------------------------------------------------
 tutorials/guacamole-tutorial/.gitignore         |  3 +
 tutorials/guacamole-tutorial/pom.xml            | 79 ++++++++++++++++++++
 .../example/TutorialGuacamoleTunnelServlet.java | 38 ++++++++++
 .../src/main/webapp/WEB-INF/web.xml             | 28 +++++++
 .../src/main/webapp/index.html                  | 68 +++++++++++++++++
 5 files changed, 216 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/92f04899/tutorials/guacamole-tutorial/.gitignore
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-tutorial/.gitignore b/tutorials/guacamole-tutorial/.gitignore
new file mode 100644
index 0000000..c3a023f
--- /dev/null
+++ b/tutorials/guacamole-tutorial/.gitignore
@@ -0,0 +1,3 @@
+*~
+target/
+META-INF/

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/92f04899/tutorials/guacamole-tutorial/pom.xml
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-tutorial/pom.xml b/tutorials/guacamole-tutorial/pom.xml
new file mode 100644
index 0000000..a394b23
--- /dev/null
+++ b/tutorials/guacamole-tutorial/pom.xml
@@ -0,0 +1,79 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
+                             http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.glyptodon.guacamole</groupId>
+    <artifactId>guacamole-tutorial</artifactId>
+    <packaging>war</packaging>
+    <version>0.9.9</version>
+    <name>guacamole-tutorial</name>
+    <url>http://guac-dev.org/</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <build>
+        <plugins>
+
+            <!-- Compile using Java 1.6 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.6</source>
+                    <target>1.6</target>
+                </configuration>
+            </plugin>
+
+            <!-- Overlay guacamole-common-js (zip) -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                    <overlays>
+                        <overlay>
+                            <groupId>org.glyptodon.guacamole</groupId>
+                            <artifactId>guacamole-common-js</artifactId>
+                            <type>zip</type>
+                        </overlay>
+                    </overlays>
+                </configuration>
+            </plugin>
+
+        </plugins>
+
+    </build>
+
+    <dependencies>
+
+        <!-- Servlet API -->
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Main Guacamole library -->
+        <dependency>
+            <groupId>org.glyptodon.guacamole</groupId>
+            <artifactId>guacamole-common</artifactId>
+            <version>0.9.9</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!-- Guacamole JavaScript library -->
+        <dependency>
+            <groupId>org.glyptodon.guacamole</groupId>
+            <artifactId>guacamole-common-js</artifactId>
+            <version>0.9.9</version>
+            <type>zip</type>
+            <scope>runtime</scope>
+        </dependency>
+
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/92f04899/tutorials/guacamole-tutorial/src/main/java/org/glyptodon/guacamole/net/example/TutorialGuacamoleTunnelServlet.java
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-tutorial/src/main/java/org/glyptodon/guacamole/net/example/TutorialGuacamoleTunnelServlet.java b/tutorials/guacamole-tutorial/src/main/java/org/glyptodon/guacamole/net/example/TutorialGuacamoleTunnelServlet.java
new file mode 100644
index 0000000..1a2e958
--- /dev/null
+++ b/tutorials/guacamole-tutorial/src/main/java/org/glyptodon/guacamole/net/example/TutorialGuacamoleTunnelServlet.java
@@ -0,0 +1,38 @@
+package org.glyptodon.guacamole.net.example;
+
+import javax.servlet.http.HttpServletRequest;
+import org.glyptodon.guacamole.GuacamoleException;
+import org.glyptodon.guacamole.net.GuacamoleSocket;
+import org.glyptodon.guacamole.net.GuacamoleTunnel;
+import org.glyptodon.guacamole.net.InetGuacamoleSocket;
+import org.glyptodon.guacamole.net.SimpleGuacamoleTunnel;
+import org.glyptodon.guacamole.protocol.ConfiguredGuacamoleSocket;
+import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
+import org.glyptodon.guacamole.servlet.GuacamoleHTTPTunnelServlet;
+
+public class TutorialGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Create our configuration
+        GuacamoleConfiguration config = new GuacamoleConfiguration();
+        config.setProtocol("vnc");
+        config.setParameter("hostname", "localhost");
+        config.setParameter("port", "5901");
+        config.setParameter("password", "potato");
+
+        // Connect to guacd - everything is hard-coded here.
+        GuacamoleSocket socket = new ConfiguredGuacamoleSocket(
+                new InetGuacamoleSocket("localhost", 4822),
+                config
+        );
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/92f04899/tutorials/guacamole-tutorial/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-tutorial/src/main/webapp/WEB-INF/web.xml b/tutorials/guacamole-tutorial/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..064e95e
--- /dev/null
+++ b/tutorials/guacamole-tutorial/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="2.5"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+    <!-- Basic config -->
+    <welcome-file-list>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+
+    <!-- Guacamole Tunnel Servlet -->
+    <servlet>
+        <description>Tunnel servlet.</description>
+        <servlet-name>Tunnel</servlet-name>
+        <servlet-class>
+            org.glyptodon.guacamole.net.example.TutorialGuacamoleTunnelServlet
+        </servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>Tunnel</servlet-name>
+        <url-pattern>/tunnel</url-pattern>
+    </servlet-mapping>
+
+</web-app>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/92f04899/tutorials/guacamole-tutorial/src/main/webapp/index.html
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-tutorial/src/main/webapp/index.html b/tutorials/guacamole-tutorial/src/main/webapp/index.html
new file mode 100644
index 0000000..15018a2
--- /dev/null
+++ b/tutorials/guacamole-tutorial/src/main/webapp/index.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML>
+<html>
+
+    <head>
+        <title>Guacamole Tutorial</title>
+    </head>
+
+    <body>
+
+        <!-- Guacamole -->
+        <script type="text/javascript"
+            src="guacamole-common-js/all.min.js"></script>
+
+        <!-- Display -->
+        <div id="display"></div>
+
+        <!-- Init -->
+        <script type="text/javascript"> /* <![CDATA[ */
+
+            // Get display div from document
+            var display = document.getElementById("display");
+
+            // Instantiate client, using an HTTP tunnel for communications.
+            var guac = new Guacamole.Client(
+                new Guacamole.HTTPTunnel("tunnel")
+            );
+
+            // Add client to display div
+            display.appendChild(guac.getDisplay().getElement());
+            
+            // Error handler
+            guac.onerror = function(error) {
+                alert(error);
+            };
+
+            // Connect
+            guac.connect();
+
+            // Disconnect on close
+            window.onunload = function() {
+                guac.disconnect();
+            }
+
+            // Mouse
+            var mouse = new Guacamole.Mouse(guac.getDisplay().getElement());
+
+            mouse.onmousedown = 
+            mouse.onmouseup   =
+            mouse.onmousemove = function(mouseState) {
+                guac.sendMouseState(mouseState);
+            };
+
+            // Keyboard
+            var keyboard = new Guacamole.Keyboard(document);
+
+            keyboard.onkeydown = function (keysym) {
+                guac.sendKeyEvent(1, keysym);
+            };
+
+            keyboard.onkeyup = function (keysym) {
+                guac.sendKeyEvent(0, keysym);
+            };
+
+        /* ]]> */ </script>
+
+    </body>
+
+</html>


[13/50] incubator-guacamole-manual git commit: Merge pull request #42 from glyptodon/connection-perm-filter

Posted by mj...@apache.org.
Merge pull request #42 from glyptodon/connection-perm-filter

GUAC-1406: Document filtering of connection permissions.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/f0954c49
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/f0954c49
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/f0954c49

Branch: refs/heads/master
Commit: f0954c49a312e3367975a29994876dd771841b82
Parents: 8d4abd2 fc17982
Author: James Muehlner <ja...@guac-dev.org>
Authored: Tue Dec 8 14:28:30 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Tue Dec 8 14:28:30 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml   |   5 ++++-
 src/chapters/images/edit-user.png | Bin 86637 -> 87516 bytes
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[02/50] incubator-guacamole-manual git commit: GUAC-363: Document usage of Guacamole with Hyper-V.

Posted by mj...@apache.org.
GUAC-363: Document usage of Guacamole with Hyper-V.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/921059fe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/921059fe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/921059fe

Branch: refs/heads/master
Commit: 921059fe1afb8f228e7ccab353afa0893bd75e00
Parents: 141ff77
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Nov 3 22:29:08 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Nov 3 22:29:08 2015 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 82 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/921059fe/src/chapters/configuring.xml
----------------------------------------------------------------------
diff --git a/src/chapters/configuring.xml b/src/chapters/configuring.xml
index fdbe905..17f705b 100644
--- a/src/chapters/configuring.xml
+++ b/src/chapters/configuring.xml
@@ -1699,6 +1699,88 @@ tcp6       0      0 :::4713                 :::*                    LISTEN</comp
                     </tgroup>
                 </informaltable>
             </section>
+            <section xml:id="rdp-preconnection-pdu">
+                <title>Preconnection PDU (Hyper-V)</title>
+                <para><indexterm>
+                        <primary>preconnection PDU</primary>
+                    </indexterm><indexterm>
+                        <primary>Hyper-V</primary>
+                    </indexterm>Some RDP servers host multiple logical RDP connections behind a
+                    single server listening on a single TCP port. To select between these logical
+                    connections, an RDP client must send the "preconnection PDU" - a message which
+                    contains values that uniquely identify the destination, referred to as the "RDP
+                    source". This mechanism is defined by the <link
+                        xmlns:xlink="http://www.w3.org/1999/xlink"
+                        xlink:href="https://msdn.microsoft.com/en-us/library/cc242359.aspx">"Session
+                        Selection Extension"</link> for the RDP protocol, and is implemented by
+                    Microsoft's Hyper-V hypervisor.</para>
+                <para>If you are using Hyper-V, you will need to specify the ID of the destination
+                    virtual machine within the <parameter>preconnection-blob</parameter> parameter.
+                    This value can be determined using PowerShell:</para>
+                <informalexample>
+                    <screen><computeroutput><prompt>PS C:\> </prompt></computeroutput><userinput>Get-VM <replaceable>VirtualMachineName</replaceable> | Select-Object Id
+</userinput><computeroutput>
+Id
+--
+ed272546-87bd-4db9-acba-e36e1a9ca20a
+
+
+<prompt>PS C:\> </prompt></computeroutput></screen>
+                </informalexample>
+                <para>The preconnection PDU is intentionally generic. While its primary use is as a
+                    means for selecting virtual machines behind Hyper-V, other RDP servers may use
+                    it as well. It is up to the RDP server itself to determine whether the
+                    preconnection ID, BLOB, or both will be used, and what their values mean.</para>
+                <informaltable frame="all">
+                    <indexterm>
+                        <primary>parameters</primary>
+                        <secondary>RDP</secondary>
+                    </indexterm>
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="3.55*"/>
+                        <thead>
+                            <row>
+                                <entry>Parameter name</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><parameter>preconnection-id</parameter></entry>
+                                <entry>
+                                    <para><indexterm>
+                                            <primary>preconnection ID</primary>
+                                        </indexterm>The numeric ID of the RDP source. This is a
+                                        non-negative integer value dictating which of potentially
+                                        several logical RDP connections should be used. This
+                                        parameter is optional, and is only required if the RDP
+                                        server is documented as requiring it. <emphasis>If using
+                                            Hyper-V, this should be left blank.</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><parameter>preconnection-blob</parameter></entry>
+                                <entry>
+                                    <para><indexterm>
+                                            <primary>preconnection BLOB</primary>
+                                        </indexterm><indexterm>
+                                            <primary>Hyper-V</primary>
+                                        </indexterm>An arbitrary string which identifies the RDP
+                                        source - one of potentially several logical RDP connections
+                                        hosted by the same RDP server. This parameter is optional,
+                                        and is only required if the RDP server is documented as
+                                        requiring it, such as Hyper-V. In all cases, the meaning of
+                                        this parameter is opaque to the RDP protocol itself and is
+                                        dictated by the RDP server. <emphasis>For Hyper-V, this will
+                                            be the ID of the destination virtual
+                                        machine.</emphasis></para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
+            </section>
             <section xml:id="rdp-sftp">
                 <title>RDP + SFTP</title>
                 <para>Guacamole can provide file transfer over SFTP even when the remote desktop is


[40/50] incubator-guacamole-manual git commit: Merge pull request #52 from glyptodon/japanese-keymap

Posted by mj...@apache.org.
Merge pull request #52 from glyptodon/japanese-keymap

GUAC-1410: Document parameter value for Japanese keyboard layout.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/4c800675
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/4c800675
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/4c800675

Branch: refs/heads/master
Commit: 4c80067554f824945d1679419d09656f43de523e
Parents: 0bcf577 78760a4
Author: James Muehlner <ja...@guac-dev.org>
Authored: Mon Feb 1 15:02:42 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Mon Feb 1 15:02:42 2016 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------



[37/50] incubator-guacamole-manual git commit: GUAC-1452: Document new SSH and telnet parameters for recording typescripts.

Posted by mj...@apache.org.
GUAC-1452: Document new SSH and telnet parameters for recording typescripts.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/78c52c1f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/78c52c1f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/78c52c1f

Branch: refs/heads/master
Commit: 78c52c1fc07604c24e208e730a53da9c5a829330
Parents: 6da4c00
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Jan 27 13:41:06 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Jan 27 13:41:06 2016 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 206 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 206 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/78c52c1f/src/chapters/configuring.xml
----------------------------------------------------------------------
diff --git a/src/chapters/configuring.xml b/src/chapters/configuring.xml
index 9176ef2..4bb9c64 100644
--- a/src/chapters/configuring.xml
+++ b/src/chapters/configuring.xml
@@ -2374,6 +2374,109 @@ ed272546-87bd-4db9-acba-e36e1a9ca20a
                     </tgroup>
                 </informaltable>
             </section>
+            <section xml:id="ssh-typescripts">
+                <title>Text session recording (typescripts)</title>
+                <para>The full, raw text content of SSH sessions, including timing information, can
+                    be recorded automatically to a specified directory. This recording, also known
+                    as a "typescript", will be written to two files within the directory specified
+                    by <parameter>typescript-path</parameter>:
+                            <filename><replaceable>NAME</replaceable></filename>, which contains the
+                    raw text data, and <filename><replaceable>NAME</replaceable>.timing</filename>,
+                    which contains timing information, where <replaceable>NAME</replaceable> is the
+                    value provided for the <parameter>typescript-name</parameter> parameter.</para>
+                <para>This format is compatible with the format used by the standard UNIX
+                        <command>script</command> command, and can be replayed using
+                        <command>scriptreplay</command> (if installed). For example, to replay a
+                    typescript called "<replaceable>NAME</replaceable>", you would run:</para>
+                <informalexample>
+                    <screen><prompt>$</prompt> <userinput>scriptreplay <replaceable>NAME</replaceable>.timing <replaceable>NAME</replaceable></userinput></screen>
+                </informalexample>
+                <important>
+                    <para>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <replaceable>NAME</replaceable> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</para>
+                </important>
+                <informaltable frame="all">
+                    <indexterm>
+                        <primary>parameters</primary>
+                        <secondary>SSH</secondary>
+                    </indexterm>
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="3.55*"/>
+                        <thead>
+                            <row>
+                                <entry>Parameter name</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><parameter>typescript-path</parameter></entry>
+                                <entry>
+                                    <para><indexterm>
+                                            <primary>SSH</primary>
+                                            <secondary>typescripts</secondary>
+                                        </indexterm><indexterm>
+                                            <primary>SSH</primary>
+                                            <secondary>text recording</secondary>
+                                        </indexterm>The directory in which typescript files should
+                                        be created. <emphasis>If a typescript needs to be recorded,
+                                            this parameter is required.</emphasis> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><parameter>create-typescript-path</parameter></entry>
+                                <entry>
+                                    <para>If set to "true", the directory specified by the
+                                            <parameter>typescript-path</parameter> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</para>
+                                    <para><emphasis>This parameter is optional.</emphasis> By
+                                        default, the directory specified by the
+                                            <parameter>typescript-path</parameter> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</para>
+                                    <para>This parameter only has an effect if typescript recording
+                                        is enabled. If the <parameter>typescript-path</parameter> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><parameter>typescript-name</parameter></entry>
+                                <entry>
+                                    <para>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <emphasis>This
+                                            parameter is optional.</emphasis> If omitted, the value
+                                        "typescript" will be used instead.</para>
+                                    <para>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <parameter>typescript-path</parameter>:
+                                                <filename><replaceable>NAME</replaceable></filename>,
+                                        which contains the raw text data, and
+                                                <filename><replaceable>NAME</replaceable>.timing</filename>,
+                                        which contains timing information, where
+                                            <replaceable>NAME</replaceable> is the value provided
+                                        for the <parameter>typescript-name</parameter>
+                                        parameter.</para>
+                                    <para>This parameter only has an effect if typescript recording
+                                        is enabled. If the <parameter>typescript-path</parameter> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
+            </section>
             <section xml:id="ssh-sftp">
                 <title>SFTP</title>
                 <para>Guacamole provides support for file transfer over SSH using SFTP, the file
@@ -2696,6 +2799,109 @@ ed272546-87bd-4db9-acba-e36e1a9ca20a
                     </tgroup>
                 </informaltable>
             </section>
+            <section xml:id="telnet-typescripts">
+                <title>Text session recording (typescripts)</title>
+                <para>The full, raw text content of telnet sessions, including timing information,
+                    can be recorded automatically to a specified directory. This recording, also
+                    known as a "typescript", will be written to two files within the directory
+                    specified by <parameter>typescript-path</parameter>:
+                            <filename><replaceable>NAME</replaceable></filename>, which contains the
+                    raw text data, and <filename><replaceable>NAME</replaceable>.timing</filename>,
+                    which contains timing information, where <replaceable>NAME</replaceable> is the
+                    value provided for the <parameter>typescript-name</parameter> parameter.</para>
+                <para>This format is compatible with the format used by the standard UNIX
+                        <command>script</command> command, and can be replayed using
+                        <command>scriptreplay</command> (if installed). For example, to replay a
+                    typescript called "<replaceable>NAME</replaceable>", you would run:</para>
+                <informalexample>
+                    <screen><prompt>$</prompt> <userinput>scriptreplay <replaceable>NAME</replaceable>.timing <replaceable>NAME</replaceable></userinput></screen>
+                </informalexample>
+                <important>
+                    <para>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <replaceable>NAME</replaceable> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</para>
+                </important>
+                <informaltable frame="all">
+                    <indexterm>
+                        <primary>parameters</primary>
+                        <secondary>SSH</secondary>
+                    </indexterm>
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="3.55*"/>
+                        <thead>
+                            <row>
+                                <entry>Parameter name</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><parameter>typescript-path</parameter></entry>
+                                <entry>
+                                    <para><indexterm>
+                                            <primary>telnet</primary>
+                                            <secondary>typescripts</secondary>
+                                        </indexterm><indexterm>
+                                            <primary>telnet</primary>
+                                            <secondary>text recording</secondary>
+                                        </indexterm>The directory in which typescript files should
+                                        be created. <emphasis>If a typescript needs to be recorded,
+                                            this parameter is required.</emphasis> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><parameter>create-typescript-path</parameter></entry>
+                                <entry>
+                                    <para>If set to "true", the directory specified by the
+                                            <parameter>typescript-path</parameter> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</para>
+                                    <para><emphasis>This parameter is optional.</emphasis> By
+                                        default, the directory specified by the
+                                            <parameter>typescript-path</parameter> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</para>
+                                    <para>This parameter only has an effect if typescript recording
+                                        is enabled. If the <parameter>typescript-path</parameter> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><parameter>typescript-name</parameter></entry>
+                                <entry>
+                                    <para>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <emphasis>This
+                                            parameter is optional.</emphasis> If omitted, the value
+                                        "typescript" will be used instead.</para>
+                                    <para>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <parameter>typescript-path</parameter>:
+                                                <filename><replaceable>NAME</replaceable></filename>,
+                                        which contains the raw text data, and
+                                                <filename><replaceable>NAME</replaceable>.timing</filename>,
+                                        which contains timing information, where
+                                            <replaceable>NAME</replaceable> is the value provided
+                                        for the <parameter>typescript-name</parameter>
+                                        parameter.</para>
+                                    <para>This parameter only has an effect if typescript recording
+                                        is enabled. If the <parameter>typescript-path</parameter> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
+            </section>
             <section xml:id="adding-telnet">
                 <title>Adding a telnet connection</title>
                 <indexterm>


[41/50] incubator-guacamole-manual git commit: GUAC-1357: Document MySQL/PostgreSQL concurrency configuration for Docker.

Posted by mj...@apache.org.
GUAC-1357: Document MySQL/PostgreSQL concurrency configuration for Docker.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/6ca04df6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/6ca04df6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/6ca04df6

Branch: refs/heads/master
Commit: 6ca04df65e5788033543596e8f239546a6f56a6c
Parents: 4c80067
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Mon Feb 1 16:49:18 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Mon Feb 1 16:49:18 2016 -0800

----------------------------------------------------------------------
 src/chapters/docker.xml | 130 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 130 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/6ca04df6/src/chapters/docker.xml
----------------------------------------------------------------------
diff --git a/src/chapters/docker.xml b/src/chapters/docker.xml
index c869423..bcc8d12 100644
--- a/src/chapters/docker.xml
+++ b/src/chapters/docker.xml
@@ -193,6 +193,71 @@
                         </tbody>
                     </tgroup>
                 </informaltable>
+                <para>Additional optional environment variables may be used to configure Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</para>
+                <informaltable frame="all">
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="1.15*"/>
+                        <thead>
+                            <row>
+                                <entry>Variable</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><envar>MYSQL_DEFAULT_MAX_CONNECTIONS</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</para>
+                                    <para><emphasis>By default, overall concurrent use of
+                                            connections is unlimited ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</para>
+                                    <para><emphasis>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>MYSQL_DEFAULT_MAX_CONNECTIONS_PER_USER</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</para>
+                                    <para><emphasis>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</para>
+                                    <para><emphasis>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</emphasis>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
                 <para>Once your <package>guacd</package> container is ready, and the values of the
                     above variables are known, Guacamole can be deployed through Docker:</para>
                 <informalexample>
@@ -366,6 +431,71 @@
                         </tbody>
                     </tgroup>
                 </informaltable>
+                <para>Additional optional environment variables may be used to configure Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</para>
+                <informaltable frame="all">
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="1.15*"/>
+                        <thead>
+                            <row>
+                                <entry>Variable</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><envar>POSTGRES_DEFAULT_MAX_CONNECTIONS</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</para>
+                                    <para><emphasis>By default, overall concurrent use of
+                                            connections is unlimited ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</para>
+                                    <para><emphasis>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>POSTGRES_DEFAULT_MAX_CONNECTIONS_PER_USER</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</para>
+                                    <para><emphasis>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</envar></entry>
+                                <entry>
+                                    <para>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</para>
+                                    <para><emphasis>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</emphasis>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
                 <para>Once your <package>guacd</package> container is ready, and the values of the
                     above variables are known, Guacamole can be deployed through Docker:</para>
                 <informalexample>


[32/50] incubator-guacamole-manual git commit: Merge pull request #48 from glyptodon/add-manifest

Posted by mj...@apache.org.
Merge pull request #48 from glyptodon/add-manifest

GUAC-1437: Add guac-manifest.json to custom auth tutorial.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/2bf5e66d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/2bf5e66d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/2bf5e66d

Branch: refs/heads/master
Commit: 2bf5e66d44925015ae3a82edc94608b6d0623a37
Parents: fcccae6 c2d68de
Author: James Muehlner <ja...@guac-dev.org>
Authored: Thu Dec 17 21:46:40 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Thu Dec 17 21:46:40 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml                    | 142 +++++++++++++++----
 .../src/main/resources/guac-manifest.json       |  12 ++
 2 files changed, 125 insertions(+), 29 deletions(-)
----------------------------------------------------------------------



[20/50] incubator-guacamole-manual git commit: GUAC-1435: Remove documentation covering deprecated GuacamoleSession class.

Posted by mj...@apache.org.
GUAC-1435: Remove documentation covering deprecated GuacamoleSession class.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/c8e80883
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/c8e80883
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/c8e80883

Branch: refs/heads/master
Commit: c8e80883dd36ad432e3971566195d7a56d01035b
Parents: 335cefc
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Dec 15 13:47:46 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Dec 15 14:38:06 2015 -0800

----------------------------------------------------------------------
 src/chapters/guacamole-common.xml | 51 ++++++++++------------------------
 src/chapters/yourown.xml          | 14 ++--------
 2 files changed, 17 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/c8e80883/src/chapters/guacamole-common.xml
----------------------------------------------------------------------
diff --git a/src/chapters/guacamole-common.xml b/src/chapters/guacamole-common.xml
index 7353cc5..b9cad80 100644
--- a/src/chapters/guacamole-common.xml
+++ b/src/chapters/guacamole-common.xml
@@ -48,33 +48,19 @@
                 <methodname>doConnect()</methodname> does not create the tunnel,
             communication between the JavaScript client and guacd cannot take
             place, which is an ideal power to have as an authenticator.</para>
-        <para>The <methodname>doConnect()</methodname> function is expected to
-            "attach" a <classname>GuacamoleTunnel</classname> to the web
-            session, abstracted by <classname>GuacamoleSession</classname>.
-            Attaching a tunnel to the session allows future tunnel requests to
-            retrieve the same tunnel and use it, thus allowing one tunnel to be
-            split across multiple requests. Assuming the
-                <methodname>doConnect()</methodname> function successfully
-            creates the tunnel, it must then return the created tunnel. The
-            already-implemented parts of
-                <classname>GuacamoleHTTPTunnelServlet</classname> then return
-            the unique identifier of this tunnel to the JavaScript client,
-            allowing its own tunnel implementation to continue to communicate
-            with the tunnel existing on the Java side.</para>
-        <para>Instances of <classname>GuacamoleTunnel</classname> are created
-            associated with a <classname>GuacamoleSocket</classname>, which is
-            the abstract interface surrounding the low-level connection to
-            guacd. Overall, there is a socket
-                (<classname>GuacamoleSocket</classname>) which provides a TCP
-            connection to guacd. This socket is exposed to
-                <classname>GuacamoleTunnel</classname>, which provides abstract
-            protocol access around what is actually (but secretly, through the
-            abstraction of the API) a TCP socket. The
-                <classname>GuacamoleSession</classname> allows instances of
-                <classname>GuacamoleTunnel</classname> to be shared across
-            requests, and <classname>GuacamoleHTTPTunnelServlet</classname>
-            pulls these tunnels from the session as necessary to fulfill
-            requests made by the JavaScript client.</para>
+        <para>The <methodname>doConnect()</methodname> function is expected to return a new
+                <classname>GuacamoleTunnel</classname>, but it is completely up to the
+            implementation to decide how that tunnel is to be created. The already-implemented parts
+            of <classname>GuacamoleHTTPTunnelServlet</classname> then return the unique identifier
+            of this tunnel to the JavaScript client, allowing its own tunnel implementation to
+            continue to communicate with the tunnel existing on the Java side.</para>
+        <para>Instances of <classname>GuacamoleTunnel</classname> are created associated with a
+                <classname>GuacamoleSocket</classname>, which is the abstract interface surrounding
+            the low-level connection to guacd. Overall, there is a socket
+                (<classname>GuacamoleSocket</classname>) which provides a TCP connection to guacd.
+            This socket is exposed to <classname>GuacamoleTunnel</classname>, which provides
+            abstract protocol access around what is actually (but secretly, through the abstraction
+            of the API) a TCP socket.</para>
         <para>The Guacamole web application extends this tunnel servlet in order
             to implement authentication at the lowest possible level,
             effectively prohibiting communication between the client and any
@@ -92,15 +78,8 @@
         // Connect to guacd here (this is a STUB)
         GuacamoleSocket socket;
 
-        // Establish the tunnel using the connected socket
-        GuacamoleTunnel tunnel = new GuacamoleTunnel(socket);
-
-        // Attach tunnel to session
-        GuacamoleSession session = new GuacamoleSession(httpSession);
-        session.attachTunnel(tunnel);
-
-        // Return pre-attached tunnel
-        return tunnel;
+        // Return a new tunnel which uses the connected socket
+        return new GuacamoleTunnel(socket);
 
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/c8e80883/src/chapters/yourown.xml
----------------------------------------------------------------------
diff --git a/src/chapters/yourown.xml b/src/chapters/yourown.xml
index 0464e24..8dc9fe0 100644
--- a/src/chapters/yourown.xml
+++ b/src/chapters/yourown.xml
@@ -359,7 +359,6 @@
 package org.glyptodon.guacamole.net.example;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
 import org.glyptodon.guacamole.GuacamoleException;
 import org.glyptodon.guacamole.net.GuacamoleSocket;
 import org.glyptodon.guacamole.net.GuacamoleTunnel;
@@ -367,7 +366,6 @@ import org.glyptodon.guacamole.net.InetGuacamoleSocket;
 import org.glyptodon.guacamole.protocol.ConfiguredGuacamoleSocket;
 import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
 import org.glyptodon.guacamole.servlet.GuacamoleHTTPTunnelServlet;
-import org.glyptodon.guacamole.servlet.GuacamoleSession;
 
 public class TutorialGuacamoleTunnelServlet
     extends GuacamoleHTTPTunnelServlet {
@@ -389,16 +387,8 @@ public class TutorialGuacamoleTunnelServlet
                 config
         );
 
-        // Establish the tunnel using the connected socket
-        GuacamoleTunnel tunnel = new GuacamoleTunnel(socket);
-
-        // Attach tunnel to session
-        HttpSession httpSession = request.getSession(true);
-        GuacamoleSession session = new GuacamoleSession(httpSession);
-        session.attachTunnel(tunnel);
-
-        // Return pre-attached tunnel
-        return tunnel;
+        // Return a new tunnel which uses the connected socket
+        return new GuacamoleTunnel(socket);;
 
     }
 


[42/50] incubator-guacamole-manual git commit: Merge pull request #53 from glyptodon/concurrency-vars

Posted by mj...@apache.org.
Merge pull request #53 from glyptodon/concurrency-vars

GUAC-1357: Document MySQL/PostgreSQL concurrency configuration for Docker.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/717c8c31
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/717c8c31
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/717c8c31

Branch: refs/heads/master
Commit: 717c8c311e8ea586b73477efcf17fe27a901bd5e
Parents: 4c80067 6ca04df
Author: James Muehlner <ja...@guac-dev.org>
Authored: Mon Feb 1 16:54:16 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Mon Feb 1 16:54:16 2016 -0800

----------------------------------------------------------------------
 src/chapters/docker.xml | 130 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 130 insertions(+)
----------------------------------------------------------------------



[05/50] incubator-guacamole-manual git commit: Merge pull request #38 from glyptodon/hyperv-details

Posted by mj...@apache.org.
Merge pull request #38 from glyptodon/hyperv-details

GUAC-363: Document Hyper-V parameter requirements.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/a8878396
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/a8878396
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/a8878396

Branch: refs/heads/master
Commit: a8878396b0dcdbf43480d5287d1d36c3db732db4
Parents: 69ba150 b9b4abf
Author: James Muehlner <ja...@guac-dev.org>
Authored: Fri Nov 6 16:29:38 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Fri Nov 6 16:29:38 2015 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 39 +++++++++++++++++++++++++++++++++------
 1 file changed, 33 insertions(+), 6 deletions(-)
----------------------------------------------------------------------



[34/50] incubator-guacamole-manual git commit: Merge pull request #49 from glyptodon/ldap-role

Posted by mj...@apache.org.
Merge pull request #49 from glyptodon/ldap-role

GUAC-1388: Document configuration and effect of RBAC for LDAP.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/9f9c32d9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/9f9c32d9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/9f9c32d9

Branch: refs/heads/master
Commit: 9f9c32d9f88d83740b94ce95c745c28f094d63ea
Parents: 2bf5e66 ae27e53
Author: James Muehlner <ja...@guac-dev.org>
Authored: Fri Jan 22 09:47:29 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Fri Jan 22 09:47:29 2016 -0800

----------------------------------------------------------------------
 src/chapters/ldap-auth.xml | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)
----------------------------------------------------------------------



[33/50] incubator-guacamole-manual git commit: GUAC-1388: Document configuration and effect of RBAC for LDAP.

Posted by mj...@apache.org.
GUAC-1388: Document configuration and effect of RBAC for LDAP.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/ae27e533
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/ae27e533
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/ae27e533

Branch: refs/heads/master
Commit: ae27e5339ce1b451d9ae0a439a94b0feb5bc63b9
Parents: 2bf5e66
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Fri Jan 22 09:22:53 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Fri Jan 22 09:22:53 2016 -0800

----------------------------------------------------------------------
 src/chapters/ldap-auth.xml | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/ae27e533/src/chapters/ldap-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/ldap-auth.xml b/src/chapters/ldap-auth.xml
index c04bace..92ebcb3 100644
--- a/src/chapters/ldap-auth.xml
+++ b/src/chapters/ldap-auth.xml
@@ -39,7 +39,7 @@
             Guacamole connection is represented within the directory as a special type of group:
                 <classname>guacConfigGroup</classname>. Attributes associated with the group define
             the protocol and parameters of the connection, and users are allowed access to the
-            connection only if they are members of that group.</para>
+            connection only if they are associated with that group.</para>
         <para>This architecture has a number of benefits:</para>
         <orderedlist>
             <listitem>
@@ -112,9 +112,11 @@
             modifications to the LDAP schema are made through applying one of the provided schema
             files. These schema files define an additional object class,
                 <classname>guacConfigGroup</classname>, which contains all configuration information
-            for a particular connection, and can be associated with arbitrarily-many users. Only
-            users which are members of a connection's group will have access to that
-            connection.</para>
+            for a particular connection, and can be associated with arbitrarily-many users and
+            groups. Each connection defined by a <classname>guacConfigGroup</classname> will be
+            accessible only by users who are members of that group (specified with the
+                <property>member</property> attribute), or who are members of associated groups
+            (specified with the <property>seeAlso</property> attribute).</para>
         <important>
             <para>The instructions given for applying the Guacamole LDAP schema changes are specific
                 to OpenLDAP, but other LDAP implementations, including Active Directory, will have
@@ -355,8 +357,21 @@ dn: cn={4}guacConfigGroup,cn=schema,cn=config
                             in.</para>
                         <para>Each configuration is analogous to a connection. Within Guacamole's
                             LDAP support, each configuration functions as a group, having user
-                            members, where each member of a particular configuration group will have
-                            access to that configuration.</para>
+                            members (via the <property>member</property> attribute) and optionally
+                            group members (via the <property>seeAlso</property> attribute), where
+                            each member of a particular configuration group will have access to the
+                            connection defined by that configuration.</para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term><property>ldap-group-base-dn</property></term>
+                    <listitem>
+                        <para>The base of the DN for all groups that may be referenced within
+                            Guacamole configurations using the standard <property>seeAlso</property>
+                            attribute. All groups which will be used to control access to Guacamole
+                            configurations must be descendents of this base DN. <emphasis>If this
+                                property is omitted, the <property>seeAlso</property> attribute will
+                                have no effect on Guacamole configurations.</emphasis></para>
                     </listitem>
                 </varlistentry>
             </variablelist>


[28/50] incubator-guacamole-manual git commit: GUAC-1436: Add JavaDoc comments for authentication tutorial classes.

Posted by mj...@apache.org.
GUAC-1436: Add JavaDoc comments for authentication tutorial classes.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/02ec9c63
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/02ec9c63
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/02ec9c63

Branch: refs/heads/master
Commit: 02ec9c6367a247cab4e1451fd5f4f2c75d960c0b
Parents: 45c2d74
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Thu Dec 17 13:04:34 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Thu Dec 17 13:04:34 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml                              | 10 ++++++++++
 .../guacamole/auth/TutorialAuthenticationProvider.java    |  5 +++++
 .../guacamole/auth/TutorialGuacamoleProperties.java       |  5 +++++
 3 files changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/02ec9c63/src/chapters/custom-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/custom-auth.xml b/src/chapters/custom-auth.xml
index 5977336..9134750 100644
--- a/src/chapters/custom-auth.xml
+++ b/src/chapters/custom-auth.xml
@@ -121,6 +121,11 @@ import org.glyptodon.guacamole.net.auth.simple.SimpleAuthenticationProvider;
 import org.glyptodon.guacamole.net.auth.Credentials;
 import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
 
+/**
+ * Authentication provider implementation intended to demonstrate basic use
+ * of Guacamole's extension API. The credentials and connection information for
+ * a single user are stored directly in guacamole.properties.
+ */
 public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
 
     @Override
@@ -208,6 +213,11 @@ public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider
 
 import org.glyptodon.guacamole.properties.StringGuacamoleProperty;
 
+/**
+ * Utility class containing all properties used by the custom authentication
+ * tutorial. The properties defined here must be specified within
+ * guacamole.properties to configure the tutorial authentication provider.
+ */
 public class TutorialGuacamoleProperties {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/02ec9c63/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
index 4084b6b..98131ef 100644
--- a/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
+++ b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
@@ -10,6 +10,11 @@ import org.glyptodon.guacamole.net.auth.simple.SimpleAuthenticationProvider;
 import org.glyptodon.guacamole.net.auth.Credentials;
 import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
 
+/**
+ * Authentication provider implementation intended to demonstrate basic use
+ * of Guacamole's extension API. The credentials and connection information for
+ * a single user are stored directly in guacamole.properties.
+ */
 public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
        
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/02ec9c63/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
index 4f98d0c..75f0298 100644
--- a/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
+++ b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
@@ -2,6 +2,11 @@ package org.glyptodon.guacamole.auth;
 
 import org.glyptodon.guacamole.properties.StringGuacamoleProperty;
 
+/**
+ * Utility class containing all properties used by the custom authentication
+ * tutorial. The properties defined here must be specified within
+ * guacamole.properties to configure the tutorial authentication provider.
+ */
 public class TutorialGuacamoleProperties {
 
     /**


[25/50] incubator-guacamole-manual git commit: GUAC-1436: Remove inaccurate documentation covering deprecated GuacamoleProperties class.

Posted by mj...@apache.org.
GUAC-1436: Remove inaccurate documentation covering deprecated GuacamoleProperties class.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/636dccdb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/636dccdb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/636dccdb

Branch: refs/heads/master
Commit: 636dccdb9db80a0079710f6348c3a6c91f1b93d2
Parents: 9f677b8
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Dec 16 12:51:18 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Dec 16 12:51:18 2015 -0800

----------------------------------------------------------------------
 src/chapters/guacamole-common.xml | 93 +++-------------------------------
 1 file changed, 6 insertions(+), 87 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/636dccdb/src/chapters/guacamole-common.xml
----------------------------------------------------------------------
diff --git a/src/chapters/guacamole-common.xml b/src/chapters/guacamole-common.xml
index 91e0c18..ee362d6 100644
--- a/src/chapters/guacamole-common.xml
+++ b/src/chapters/guacamole-common.xml
@@ -10,14 +10,12 @@
     <indexterm>
         <primary><package>guacamole-common</package></primary>
     </indexterm>
-    <para>The Java API provided by the Guacamole project is called
-        guacamole-common. It provides a basic means of tunneling data between
-        the JavaScript client provided by guacamole-common-js and the native
-        proxy daemon, guacd. There are other classes provided as well which make
-        dealing with the Guacamole protocol and reading from
-            <filename>guacamole.properties</filename> easier, but in general,
-        the purpose of this library is to facilitate the creation of custom
-        tunnels between the JavaScript client and guacd.</para>
+    <para>The Java API provided by the Guacamole project is called guacamole-common. It provides a
+        basic means of tunneling data between the JavaScript client provided by guacamole-common-js
+        and the native proxy daemon, guacd, and for dealing with the Guacamole protocol. The purpose
+        of this library is to facilitate the creation of custom tunnels between the JavaScript
+        client and guacd, allowing your Guacamole-driven web application to enforce its own security
+        model, if any, and dictate exactly what connections are established.</para>
     <section xml:id="java-http-tunnel">
         <title>HTTP tunnel</title>
         <para>The Guacamole Java API implements the HTTP tunnel using a servlet
@@ -161,83 +159,4 @@
                 sufficient.</para>
         </section>
     </section>
-    <section xml:id="reading-properties">
-        <title>Reading properties</title>
-        <para>The Guacamole Java API provides simple access to
-                <filename>guacamole.properties</filename> for convenience,
-            although such support is not strictly required. This support is
-            provided through the <classname>GuacamoleProperies</classname>
-            utility class, which cannot be instantiated and provides two simple
-            property retrieval functions: <methodname>getProperty()</methodname>
-            and <methodname>getRequiredProperty()</methodname>, the difference
-            being that the former can return <constant>null</constant> if a
-            property is not defined, while the latter will throw an exception
-            instead. These functions are generic and typesafe and will return
-            the correct Java class or type when given an instance of a
-            property.</para>
-        <para>In Guacamole, each property is declared as an implementation of
-                <classname>GuacamoleProperty</classname>, and must provide an
-            implementation of <methodname>getName()</methodname>, which returns
-            the name of the property as it should exist within
-                <filename>guacamole.properties</filename>, and
-                <methodname>parseValue()</methodname>, which is given the
-                <classname>String</classname> value of the property as read from
-                <filename>guacamole.properties</filename>, and must return the
-            declared type of the <classname>GuacamoleProperty</classname>
-            implementation. A good example of how this works is the
-                <classname>IntegerGuacamoleProperty</classname> implementation
-            included within guacamole-common:</para>
-        <informalexample>
-            <programlisting>public abstract class IntegerGuacamoleProperty implements GuacamoleProperty&lt;Integer> {
-
-    @Override
-    public Integer parseValue(String value) throws GuacamoleException {
-
-        // If no property provided, return null.
-        if (value == null)
-            return null;
-
-        try {
-            Integer integer = new Integer(value);
-            return integer;
-        }
-        catch (NumberFormatException e) {
-            throw new GuacamoleServerException("Property \"" + getName() +
-                "\" must be an integer.", e);
-        }
-
-    }
-
-}</programlisting>
-        </informalexample>
-        <para>Notice that this implementation does not actually provide
-                <methodname>getName()</methodname>. Instead, it only implements
-                <methodname>parseValue()</methodname>, the intent being to make
-            other developers' lives easier when they need to retrieve an integer
-            property from <filename>guacamole.properties</filename>. Using this
-            class, retrieving an integer property is simple:</para>
-        <informalexample>
-            <programlisting>public class MyClass {
-
-    public static final IntegerGuacamoleProperty IMPORTANT_INT =
-        new IntegerGuacamoleProperty() {
-
-        @Override
-        public String getName() { return "important-int"; }
-
-    };
-
-}
-
-... later on within MyClass ...
-
-int important = GuacamoleProperties.getRequiredProperty(IMPORTANT_INT);</programlisting>
-        </informalexample>
-        <para>guacamole-common provides a couple of similar classes for
-            retrieving common types of properties, such as a
-                <classname>String</classname> or <classname>File</classname>,
-            and implementing your own to facilitate properties that parse into
-            arrays or a <classname>List</classname>, etc. should be reasonably
-            simple.</para>
-    </section>
 </chapter>


[47/50] incubator-guacamole-manual git commit: GUAC-1164: Document new "resize-method" parameter.

Posted by mj...@apache.org.
GUAC-1164: Document new "resize-method" parameter.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/a30f4087
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/a30f4087
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/a30f4087

Branch: refs/heads/master
Commit: a30f4087838017e2a1f11935272b26a092edfc59
Parents: 5e778ae
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Mar 16 19:24:16 2016 -0700
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Mar 16 19:24:16 2016 -0700

----------------------------------------------------------------------
 src/chapters/configuring.xml | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/a30f4087/src/chapters/configuring.xml
----------------------------------------------------------------------
diff --git a/src/chapters/configuring.xml b/src/chapters/configuring.xml
index af59998..f671325 100644
--- a/src/chapters/configuring.xml
+++ b/src/chapters/configuring.xml
@@ -1549,6 +1549,44 @@ tcp6       0      0 :::4713                 :::*                    LISTEN</comp
                                         an appropriate resolution for the RDP session.</para>
                                 </entry>
                             </row>
+                            <row>
+                                <entry><parameter>resize-method</parameter></entry>
+                                <entry>
+                                    <para><indexterm>
+                                            <primary>RDP</primary>
+                                            <secondary>display size</secondary>
+                                        </indexterm>The method to use to update the RDP server when
+                                        the width or height of the client display changes. This
+                                        parameter is optional. If this value is not specified, no
+                                        action will be taken when the client display changes
+                                        size.</para>
+                                    <para>Normally, the display size of an RDP session is constant
+                                        and can only be changed when initially connecting. As of RDP
+                                        8.1, the "Display Update" channel can be used to request
+                                        that the server change the display size. For older RDP
+                                        servers, the only option is to disconnect and reconnect with
+                                        the new size.</para>
+                                    <para>Possible values are:</para>
+                                    <variablelist>
+                                        <varlistentry>
+                                            <term><constant>display-update</constant></term>
+                                            <listitem>
+                                                <para>Uses the "Display Update" channel added with
+                                                  RDP 8.1 to signal the server when the client
+                                                  display size has changed.</para>
+                                            </listitem>
+                                        </varlistentry>
+                                        <varlistentry>
+                                            <term><constant>reconnect</constant></term>
+                                            <listitem>
+                                                <para>Automatically disconnects the RDP session when
+                                                  the client display size has changed, and
+                                                  reconnects with the new size.</para>
+                                            </listitem>
+                                        </varlistentry>
+                                    </variablelist>
+                                </entry>
+                            </row>
                         </tbody>
                     </tgroup>
                 </informaltable>


[19/50] incubator-guacamole-manual git commit: Merge pull request #45 from glyptodon/bump-version

Posted by mj...@apache.org.
Merge pull request #45 from glyptodon/bump-version

GUAC-1392: Bump version numbers to 0.9.9 everywhere.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/335cefc2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/335cefc2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/335cefc2

Branch: refs/heads/master
Commit: 335cefc2760a95660e4cf6154eeeafe741d40a0f
Parents: e0a3f13 99e7033
Author: James Muehlner <ja...@guac-dev.org>
Authored: Tue Dec 15 14:10:02 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Tue Dec 15 14:10:02 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml   | 14 ++++++--------
 src/chapters/guacamole-ext.xml |  4 ++--
 src/chapters/installing.xml    | 14 +++++++-------
 src/chapters/jdbc-auth.xml     | 32 +++++++++++++++++++++++++-------
 src/chapters/ldap-auth.xml     |  4 ++--
 src/chapters/noauth.xml        |  4 ++--
 src/chapters/yourown.xml       | 14 +++++++-------
 src/gug.xml                    |  4 ++--
 8 files changed, 53 insertions(+), 37 deletions(-)
----------------------------------------------------------------------



[30/50] incubator-guacamole-manual git commit: GUAC-1437: Add required guac-manifest.json to custom auth tutorial. Correct installation process and related information.

Posted by mj...@apache.org.
GUAC-1437: Add required guac-manifest.json to custom auth tutorial. Correct installation process and related information.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/c2d68de7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/c2d68de7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/c2d68de7

Branch: refs/heads/master
Commit: c2d68de778e7164fe3e99e76645cb6c17c6c441d
Parents: 765fe6f
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Dec 16 13:54:56 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Thu Dec 17 13:12:01 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml                    | 142 +++++++++++++++----
 .../src/main/resources/guac-manifest.json       |  12 ++
 2 files changed, 125 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/c2d68de7/src/chapters/custom-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/custom-auth.xml b/src/chapters/custom-auth.xml
index 9134750..22e06b6 100644
--- a/src/chapters/custom-auth.xml
+++ b/src/chapters/custom-auth.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<chapter xml:id="custom-authentication" xmlns="http://docbook.org/ns/docbook" version="5.0"
-    xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude">
+<chapter xml:id="custom-auth" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en"
+    xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>Custom authentication</title>
     <indexterm xmlns:xl="http://www.w3.org/1999/xlink">
         <primary>authentication</primary>
@@ -11,17 +11,17 @@
         integrate Guacamole into existing authentication systems without having to resort to writing
         their own web application around the Guacamole API.</para>
     <para>The web application comes with a default authentication mechanism which uses an XML file
-        to associate users with connections. Plugins for Guacamole that provide LDAP-based
+        to associate users with connections. Extensions for Guacamole that provide LDAP-based
         authentication or database-based authentication have also been developed.</para>
     <para>To demonstrate the principles involved, we will implement a very simple authentication
-        plugin which associates a single user/password pair with a single connection, with all this
-        information saved in properties inside the <filename>guacamole.properties</filename>
+        extension which associates a single user/password pair with a single connection, with all
+        this information saved in properties inside the <filename>guacamole.properties</filename>
         file.</para>
-    <para>In general, all other authentication plugins for Guacamole will use the principles
+    <para>In general, all other authentication extensions for Guacamole will use the principles
         demonstrated here. This tutorial demonstrates the simplest way to create an authentication
-        plugin for Guacamole - an authentication plugin that does not support management of users
-        and connections via the web interface.</para>
-    <section xml:id="auth-model">
+        extension for Guacamole - an authentication extension that does not support management of
+        users and connections via the web interface.</para>
+    <section xml:id="custom-auth-model">
         <title>Guacamole's authentication model</title>
         <para>When you view any page in Guacamole, whether that be the login screen or the client
             interface, the page makes an authentication attempt with the web application, sending
@@ -29,26 +29,26 @@
             process occurs, except the web application receives the username and password as
             well.</para>
         <para>The web application handles this authentication attempt by collecting all credentials
-            available and passing them to a designated class called the "authentication provider".
-            This class is designated via a property in the <filename>guacamole.properties</filename>
-            file. Given the set of credentials, the specified authentication provider returns a
-            context object that provides restricted access to other users and connections, if
-            any.</para>
+            available and passing them to designated classes called "authentication providers".
+            Given the set of credentials, authentication providers return a context object that
+            provides restricted access to other users and connections, if any.</para>
     </section>
-    <section xml:id="client-plugin-skeleton">
-        <title>A Guacamole plugin skeleton</title>
+    <section xml:id="custom-auth-skeleton">
+        <title>A Guacamole extension skeleton</title>
         <para>For simplicity's sake, and because this is how things are done upstream in the
-            Guacamole project, we will use Maven to build our plugin.</para>
-        <para>The bare minimum required for a Guacamole authentication plugin is a
-                <filename>pom.xml</filename> file listing guacamole-ext as a dependency, and a
-            single .java file implementing our stub of an authentication provider.</para>
+            Guacamole project, we will use Maven to build our extension.</para>
+        <para>The bare minimum required for a Guacamole authentication extension is a
+                <filename>pom.xml</filename> file listing guacamole-ext as a dependency, a single
+            .java file implementing our stub of an authentication provider, and a
+                <filename>guac-manifest.json</filename> file describing the extension and pointing
+            to our authentication provider class.</para>
         <para>In our stub, we won't actually do any authentication yet; we'll just universally
             reject all authentication attempts by returning <varname>null</varname> for any
             credentials given. You can verify that this is what happens by checking the server
             logs.</para>
         <example>
             <title>Barebones <filename>pom.xml</filename> required for a simple authentication
-                plugin.</title>
+                extension.</title>
             <programlisting>&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
@@ -107,8 +107,8 @@
         <para>We won't need to update this <filename>pom.xml</filename> throughout the rest of the
             tutorial. Even after adding new files, Maven will just find them and compile as
             necessary.</para>
-        <para>Naturally, we need the actual authentication plugin skeleton code. While you can put
-            this in whatever file and package you want, for the sake of this tutorial, we will
+        <para>Naturally, we need the actual authentication extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
             assume you are using
                 <classname>org.glyptodon.guacamole.auth.TutorialAuthenticationProvider</classname>.</para>
         <example>
@@ -149,8 +149,9 @@ public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider
                 <filename>src/main/java/org/glyptodon/guacamole/auth</filename> as
                 <filename>TutorialAuthenticationProvider.java</filename>.</para>
         <para>Notice how simple the authentication provider is. The
-                <classname>AuthenticationProvider</classname> interface requires nothing more than a
-            unique identifier (we will use "tutorial") and a single
+                <classname>SimpleAuthenticationProvider</classname> base class simplifies the
+                <classname>AuthenticationProvider</classname> interface, requiring nothing more than
+            a unique identifier (we will use "tutorial") and a single
                 <methodname>getAuthorizedConfigurations()</methodname> implementation, which must
             return a <classname>Map</classname> of <classname>GuacamoleConfiguration</classname>
             each associated with some arbitrary unique ID. This unique ID will be presented to the
@@ -161,9 +162,70 @@ public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider
             map and returning <varname>null</varname>, as the former indicates the credentials are
             authorized but simply have no associated configurations, while the latter indicates the
             credentials are not authorized at all.</para>
+        <para>The only remaining piece for the overall skeleton to be complete is a
+                <filename>guac-manifest.json</filename> file. <emphasis>This file is absolutely
+                required for all Guacamole extensions.</emphasis> The
+                <filename>guac-manifest.json</filename> format is described in more detail in <xref
+                xmlns:xlink="http://www.w3.org/1999/xlink" linkend="guacamole-ext"/>. It provides
+            for quite a few properties, but for our authentication extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our authentication provider class.</para>
+        <para>The Guacamole extension format requires that <filename>guac-manifest.json</filename>
+            be placed in the root directory of the extension <filename>.jar</filename> file. To
+            accomplish this with Maven, we place it within the
+                <filename>src/main/resources</filename> directory. Maven will automatically pick it
+            up during the build and include it within the <filename>.jar</filename>.</para>
+        <example>
+            <title>The required <filename>guac-manifest.json</filename></title>
+            <programlisting>{
+
+    "guacamoleVersion" : "0.9.9",
+
+    "name"      : "Tutorial Authentication Extension",
+    "namespace" : "guac-auth-tutorial",
+
+    "authProviders" : [
+        "org.glyptodon.guacamole.auth.TutorialAuthenticationProvider"
+    ]
+
+}</programlisting>
+        </example>
     </section>
-    <section xml:id="user-auth-example">
-        <title>Actually authenticating the user</title>
+    <section xml:id="custom-auth-building">
+        <title>Building the extension</title>
+        <para>Once all three of the above files are in place, the extension will build, and can even
+            be installed within Guacamole (see <xref xmlns:xlink="http://www.w3.org/1999/xlink"
+                linkend="custom-auth-installing"/> at the end of this chapter), even though it is
+            just a skeleton at this point. It won't do anything yet other than reject all
+            authentication attempts, but it's good to at least try building the extension to make
+            sure nothing is missing and that all steps have been followed correctly so far:</para>
+        <informalexample>
+            <screen><prompt>$</prompt> mvn package
+<computeroutput>[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-auth-tutorial 0.9.9
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 2.345 s
+[INFO] Finished at: 2015-12-16T13:39:00-08:00
+[INFO] Final Memory: 14M/138M
+[INFO] ------------------------------------------------------------------------</computeroutput>
+<prompt>$</prompt></screen>
+        </informalexample>
+        <para>Assuming you see the "<computeroutput>BUILD SUCCESS</computeroutput>" message when you
+            build the extension, there will be a new file,
+                <filename>target/guacamole-auth-tutorial-0.9.9.jar</filename>, which can be
+            installed within Guacamole and tested. If you changed the name or version of the project
+            in the <filename>pom.xml</filename> file, the name of this new <filename>.jar</filename>
+            file will be different, but it can still be found within
+            <filename>target/</filename>.</para>
+    </section>
+    <section xml:id="custom-auth-config">
+        <title>Configuration and authentication</title>
         <para>Once we receive credentials, we need to validate those credentials against the
             associated properties in <filename>guacamole.properties</filename> (our source of
             authentication information for the sake of this tutorial).</para>
@@ -334,10 +396,10 @@ public Map&lt;String, GuacamoleConfiguration>
                 <filename>guacamole.properties</filename> file after the user has been
             authenticated, and return that configuration to the web application.</para>
     </section>
-    <section xml:id="parse-conf-example">
+    <section xml:id="custom-auth-more-config">
         <title>Parsing the configuration</title>
         <para>The only remaining task before we have a fully-functioning authentication provider is
-            to parse the configuration from the <filename>guacamole.properties</filename>
+            to actually parse the configuration from the <filename>guacamole.properties</filename>
             file.</para>
         <example>
             <title>Parsing and returning a <classname>GuacamoleConfiguration</classname></title>
@@ -403,5 +465,27 @@ public Map&lt;String, GuacamoleConfiguration>
 
 }</programlisting>
         </example>
+        <para>The extension is now complete and can be built as described earlier in <xref
+                xmlns:xlink="http://www.w3.org/1999/xlink" linkend="custom-auth-building"/>.</para>
+    </section>
+    <section xml:id="custom-auth-installing">
+        <title>Installing the extension</title>
+        <para>Guacamole extensions are self-contained <filename>.jar</filename> files which are
+            installed by being placed within <filename>GUACAMOLE_HOME/extensions</filename>, and
+            this extension is no different. As described in <xref
+                xmlns:xlink="http://www.w3.org/1999/xlink" linkend="configuring-guacamole"/>,
+                <varname>GUACAMOLE_HOME</varname> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <filename>.guacamole</filename> directory within the home directory of the
+            user running Tomcat.</para>
+        <para>To install your extension, ensure that the required properties have been added to your
+                <filename>guacamole.properties</filename>, copy the
+                <filename>target/guacamole-auth-tutorial-0.9.9.jar</filename> file into
+                <filename>GUACAMOLE_HOME/extensions</filename> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</para>
+        <informalexample>
+            <screen>Extension "Tutorial Authentication Extension" loaded.</screen>
+        </informalexample>
     </section>
 </chapter>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/c2d68de7/tutorials/guacamole-auth-tutorial/src/main/resources/guac-manifest.json
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/src/main/resources/guac-manifest.json b/tutorials/guacamole-auth-tutorial/src/main/resources/guac-manifest.json
new file mode 100644
index 0000000..35dff7f
--- /dev/null
+++ b/tutorials/guacamole-auth-tutorial/src/main/resources/guac-manifest.json
@@ -0,0 +1,12 @@
+{
+
+    "guacamoleVersion" : "0.9.9",
+
+    "name"      : "Tutorial Authentication Extension",
+    "namespace" : "guac-auth-tutorial",
+
+    "authProviders" : [
+        "org.glyptodon.guacamole.auth.TutorialAuthenticationProvider"
+    ]
+
+}


[17/50] incubator-guacamole-manual git commit: Merge pull request #44 from glyptodon/clipboard-instruction

Posted by mj...@apache.org.
Merge pull request #44 from glyptodon/clipboard-instruction

GUAC-1432: Correct documentation covering clipboard stream instruction.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/e0a3f131
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/e0a3f131
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/e0a3f131

Branch: refs/heads/master
Commit: e0a3f1315fc1cf1baa01e6b3e72987bbefc09efa
Parents: 3922c01 8af1857
Author: James Muehlner <ja...@guac-dev.org>
Authored: Mon Dec 14 19:54:32 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Mon Dec 14 19:54:32 2015 -0800

----------------------------------------------------------------------
 src/chapters/protocol.xml                       | 14 +++++-----
 .../instructions/client/event/clipboard.xml     | 23 ----------------
 .../instructions/server/event/clipboard.xml     | 18 -------------
 .../instructions/server/stream/clipboard.xml    | 28 ++++++++++++++++++++
 src/references/protocol.xml                     | 10 +------
 5 files changed, 37 insertions(+), 56 deletions(-)
----------------------------------------------------------------------



[12/50] incubator-guacamole-manual git commit: GUAC-1406: Document filtering of connection permissions.

Posted by mj...@apache.org.
GUAC-1406: Document filtering of connection permissions.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/fc17982b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/fc17982b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/fc17982b

Branch: refs/heads/master
Commit: fc17982b519e171ba3600d0945150a5be28c89dd
Parents: 8d4abd2
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Dec 8 14:07:25 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Dec 8 14:22:21 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml   |   5 ++++-
 src/chapters/images/edit-user.png | Bin 86637 -> 87516 bytes
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/fc17982b/src/chapters/administration.xml
----------------------------------------------------------------------
diff --git a/src/chapters/administration.xml b/src/chapters/administration.xml
index 177f9b7..822a2dc 100644
--- a/src/chapters/administration.xml
+++ b/src/chapters/administration.xml
@@ -161,7 +161,10 @@
         <para>To edit a user, just click on the user you wish to edit. You will be taken to a screen
             which allows you to change the user's password, expire their password (such that it must
             be changed at next login), add or remove administrative permissions, and add or remove
-            read access to specific connections or groups.</para>
+            read access to specific connections or groups. If you are managing a large number of
+            connections or groups and wish to reduce the size of the list displayed, you can do so
+            by specifying search terms within the "Filter" field. Groups will be filtered by name
+            and connections will be filtered by name or protocol.</para>
         <para>If you have delete permission on the user, you will also see a "Delete" button.
             Clicking this button will permanently delete the user. Alternatively, if you only wish
             to temporarily disable the account, checking "Login disabled" will achieve the same

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/fc17982b/src/chapters/images/edit-user.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/edit-user.png b/src/chapters/images/edit-user.png
index a4d3087..17f51d0 100644
Binary files a/src/chapters/images/edit-user.png and b/src/chapters/images/edit-user.png differ


[15/50] incubator-guacamole-manual git commit: Merge pull request #43 from glyptodon/ldap-encryption

Posted by mj...@apache.org.
Merge pull request #43 from glyptodon/ldap-encryption

GUAC-1166: Document new ldap-encryption-method property.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/3922c019
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/3922c019
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/3922c019

Branch: refs/heads/master
Commit: 3922c01992c0472c4b8807fc0744714f4eb88f80
Parents: f0954c4 25852cc
Author: James Muehlner <ja...@guac-dev.org>
Authored: Wed Dec 9 13:20:57 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Wed Dec 9 13:20:57 2015 -0800

----------------------------------------------------------------------
 src/chapters/ldap-auth.xml | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[18/50] incubator-guacamole-manual git commit: GUAC-1392: Bump version numbers to 0.9.9 everywhere.

Posted by mj...@apache.org.
GUAC-1392: Bump version numbers to 0.9.9 everywhere.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/99e70334
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/99e70334
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/99e70334

Branch: refs/heads/master
Commit: 99e70334c8dcabd4b1249108d5e735dbfce66bbf
Parents: e0a3f13
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Dec 15 13:39:48 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Dec 15 13:54:09 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml   | 14 ++++++--------
 src/chapters/guacamole-ext.xml |  4 ++--
 src/chapters/installing.xml    | 14 +++++++-------
 src/chapters/jdbc-auth.xml     | 32 +++++++++++++++++++++++++-------
 src/chapters/ldap-auth.xml     |  4 ++--
 src/chapters/noauth.xml        |  4 ++--
 src/chapters/yourown.xml       | 14 +++++++-------
 src/gug.xml                    |  4 ++--
 8 files changed, 53 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/custom-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/custom-auth.xml b/src/chapters/custom-auth.xml
index edd2997..d23db23 100644
--- a/src/chapters/custom-auth.xml
+++ b/src/chapters/custom-auth.xml
@@ -18,11 +18,9 @@
         information saved in properties inside the <filename>guacamole.properties</filename>
         file.</para>
     <para>In general, all other authentication plugins for Guacamole will use the principles
-        demonstrated here. However, as of Guacamole 0.8.0, the authentication model has been
-        significantly enhanced, and supports more than simply translating a username/password pair
-        into a set of authorized configurations. This tutorial demonstrates the simplest way to
-        create an authentication plugin for Guacamole - an authentication plugin that does not
-        support management of users and connections via the web interface.</para>
+        demonstrated here. This tutorial demonstrates the simplest way to create an authentication
+        plugin for Guacamole - an authentication plugin that does not support management of users
+        and connections via the web interface.</para>
     <section xml:id="auth-model">
         <title>Guacamole's authentication model</title>
         <para>When you view any page in Guacamole, whether that be the login screen or the client
@@ -60,7 +58,7 @@
     &lt;groupId>org.glyptodon.guacamole&lt;/groupId>
     &lt;artifactId>guacamole-auth-tutorial&lt;/artifactId>
     &lt;packaging>jar&lt;/packaging>
-    &lt;version>0.9.8&lt;/version>
+    &lt;version>0.9.9&lt;/version>
     &lt;name>guacamole-auth-tutorial&lt;/name>
     &lt;url>http://guac-dev.org/&lt;/url>
 
@@ -90,7 +88,7 @@
         &lt;dependency>
             &lt;groupId>org.glyptodon.guacamole&lt;/groupId>
             &lt;artifactId>guacamole-common&lt;/artifactId>
-            &lt;version>0.9.7&lt;/version>
+            &lt;version>0.9.9&lt;/version>
             &lt;scope>provided&lt;/scope>
         &lt;/dependency>
 
@@ -98,7 +96,7 @@
         &lt;dependency>
             &lt;groupId>org.glyptodon.guacamole&lt;/groupId>
             &lt;artifactId>guacamole-ext&lt;/artifactId>
-            &lt;version>0.9.8&lt;/version>
+            &lt;version>0.9.9&lt;/version>
             &lt;scope>provided&lt;/scope>
         &lt;/dependency>
 

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/guacamole-ext.xml
----------------------------------------------------------------------
diff --git a/src/chapters/guacamole-ext.xml b/src/chapters/guacamole-ext.xml
index b05ce72..49364af 100644
--- a/src/chapters/guacamole-ext.xml
+++ b/src/chapters/guacamole-ext.xml
@@ -159,7 +159,7 @@
                     <filename>guac-manifest.json</filename> will look something like this:</para>
             <informalexample>
                 <programlisting>{
-    "guacamoleVersion" : "0.9.8",
+    "guacamoleVersion" : "0.9.9",
     "name" : "My Extension",
     "namespace" : "my-extension"
 }</programlisting>
@@ -171,7 +171,7 @@
             <informalexample>
                 <programlisting>{
 
-    "guacamoleVersion" : "0.9.8",
+    "guacamoleVersion" : "0.9.9",
 
     "name"      : "My Extension",
     "namespace" : "my-extension",

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/installing.xml
----------------------------------------------------------------------
diff --git a/src/chapters/installing.xml b/src/chapters/installing.xml
index ac5e1e9..afc0a70 100644
--- a/src/chapters/installing.xml
+++ b/src/chapters/installing.xml
@@ -492,8 +492,8 @@
                 of a <filename>.tar.gz</filename> archive which you can extract from the command
                 line:</para>
             <informalexample>
-                <screen><prompt>$</prompt> <userinput>tar -xzf guacamole-server-0.9.8.tar.gz</userinput>
-<prompt>$</prompt> <userinput>cd guacamole-server-0.9.8/</userinput>
+                <screen><prompt>$</prompt> <userinput>tar -xzf guacamole-server-0.9.9.tar.gz</userinput>
+<prompt>$</prompt> <userinput>cd guacamole-server-0.9.9/</userinput>
 <prompt>$</prompt></screen>
             </informalexample>
             <para>If you want the absolute latest code, and don't care that the code hasn't been as
@@ -545,7 +545,7 @@ checking whether build environment is sane... yes
 ...
 
 ------------------------------------------------
-guacamole-server version 0.9.8
+guacamole-server version 0.9.9
 ------------------------------------------------
 
    Library status:
@@ -713,8 +713,8 @@ make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</computeroutpu
                 <filename>.tar.gz</filename> archive which you can extract from the command
             line:</para>
         <informalexample>
-            <screen><prompt>$</prompt> <userinput>tar -xzf guacamole-client-0.9.8.tar.gz</userinput>
-<prompt>$</prompt> <userinput>cd guacamole-client-0.9.8/</userinput>
+            <screen><prompt>$</prompt> <userinput>tar -xzf guacamole-client-0.9.9.tar.gz</userinput>
+<prompt>$</prompt> <userinput>cd guacamole-client-0.9.9/</userinput>
 <prompt>$</prompt></screen>
         </informalexample>
         <para>As with <package>guacamole-server</package>, if you want the absolute latest code, and
@@ -808,7 +808,7 @@ Resolving deltas: 100% (3942/3942), done.</computeroutput>
             application from the name of the <filename>.war</filename> file, you will likely want to
             rename this to simply <filename>guacamole.war</filename> while copying:</para>
         <informalexample>
-            <screen><prompt>#</prompt> <userinput>cp guacamole/target/guacamole-0.9.8.war <replaceable>/var/lib/tomcat/webapps</replaceable>/guacamole.war</userinput>
+            <screen><prompt>#</prompt> <userinput>cp guacamole/target/guacamole-0.9.9.war <replaceable>/var/lib/tomcat/webapps</replaceable>/guacamole.war</userinput>
 <prompt>#</prompt></screen>
         </informalexample>
         <para>Again, if you are using a different servlet container or if Tomcat is installed to a
@@ -826,7 +826,7 @@ Resolving deltas: 100% (3942/3942), done.</computeroutput>
 Starting Tomcat... OK</computeroutput>
 <prompt>#</prompt> <userinput>/etc/init.d/guacd start</userinput>
 <computeroutput>Starting guacd: SUCCESS
-guacd[6229]: INFO:  Guacamole proxy daemon (guacd) version 0.9.8 started</computeroutput>
+guacd[6229]: INFO:  Guacamole proxy daemon (guacd) version 0.9.9 started</computeroutput>
 <prompt>#</prompt></screen>
         </informalexample>
         <important>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/jdbc-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/jdbc-auth.xml b/src/chapters/jdbc-auth.xml
index f06d68c..a755c62 100644
--- a/src/chapters/jdbc-auth.xml
+++ b/src/chapters/jdbc-auth.xml
@@ -60,10 +60,10 @@
                 <term><filename>mysql/</filename></term>
                 <listitem>
                     <para>Contains the MySQL/MariaDB authentication extension,
-                            <filename>guacamole-auth-jdbc-mysql-0.9.8.jar</filename>, along with a
+                            <filename>guacamole-auth-jdbc-mysql-0.9.9.jar</filename>, along with a
                             <filename>schema/</filename> directory containing MySQL-specific SQL
                         scripts required to set up the database. The
-                            <filename>guacamole-auth-jdbc-mysql-0.9.8.jar</filename> file will
+                            <filename>guacamole-auth-jdbc-mysql-0.9.9.jar</filename> file will
                         ultimately need to be placed within
                             <filename>GUACAMOLE_HOME/extensions</filename>, while the MySQL JDBC
                         driver must be placed within <filename>GUACAMOLE_HOME/lib</filename>.</para>
@@ -80,10 +80,10 @@
                 <term><filename>postgresql/</filename></term>
                 <listitem>
                     <para>Contains the PostgreSQL authentication extension,
-                            <filename>guacamole-auth-jdbc-postgresql-0.9.8.jar</filename>, along
+                            <filename>guacamole-auth-jdbc-postgresql-0.9.9.jar</filename>, along
                         with a <filename>schema/</filename> directory containing PostgreSQL-specific
                         SQL scripts required to set up the database. The
-                            <filename>guacamole-auth-jdbc-postgresql-0.9.8.jar</filename> file will
+                            <filename>guacamole-auth-jdbc-postgresql-0.9.9.jar</filename> file will
                         ultimately need to be placed within
                             <filename>GUACAMOLE_HOME/extensions</filename>, while the PostgreSQL
                         JDBC driver must be placed within
@@ -170,7 +170,7 @@ Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
                     script located within the <filename>upgrade/</filename> directory:</para>
                 <informalexample>
                     <screen><prompt>$</prompt> <userinput>ls schema/upgrade/</userinput>
-<computeroutput>upgrade-pre-0.8.2.sql upgrade-pre-0.9.7.sql
+<computeroutput>upgrade-pre-0.8.2.sql upgrade-pre-0.9.7.sql upgrade-pre-0.9.9.sql
 upgrade-pre-0.9.6.sql upgrade-pre-0.9.8.sql</computeroutput>
 <prompt>$</prompt> <userinput>mysql -u root -p <replaceable>guacamole_db</replaceable> &lt; schema/upgrade/upgrade-pre-0.8.2.sql</userinput>
 <prompt>Enter password:</prompt> <userinput><replaceable>password</replaceable></userinput>
@@ -201,6 +201,14 @@ upgrade-pre-0.9.6.sql upgrade-pre-0.9.8.sql</computeroutput>
 <prompt>Enter password:</prompt> <userinput><replaceable>password</replaceable></userinput>
 <prompt>$</prompt></screen>
                 </informalexample>
+                <para>If you are upgrading from a version of Guacamole before 0.9.9, schema changes
+                    which add indexes improving the performance of connection history searches need
+                    to be applied:</para>
+                <informalexample>
+                    <screen><prompt>$</prompt> <userinput>mysql -u root -p <replaceable>guacamole_db</replaceable> &lt; schema/upgrade/upgrade-pre-0.9.9.sql</userinput>
+<prompt>Enter password:</prompt> <userinput><replaceable>password</replaceable></userinput>
+<prompt>$</prompt></screen>
+                </informalexample>
             </important>
         </section>
         <section xml:id="jdbc-auth-postgresql">
@@ -267,6 +275,16 @@ ALTER TABLE
 ALTER TABLE</computeroutput>
 <prompt>$</prompt></screen>
                     </informalexample>
+                    <para>If you are upgrading from a version of Guacamole before 0.9.9, schema
+                        changes which add indexes improving the performance of connection history
+                        searches need to be applied:</para>
+                    <informalexample>
+                        <screen><prompt>$</prompt> <userinput>psql -d <replaceable>guacamole_db</replaceable> -f schema/upgrade/upgrade-pre-0.9.9.sql</userinput>
+<computeroutput>CREATE INDEX
+CREATE INDEX
+CREATE INDEX</computeroutput>
+<prompt>$</prompt></screen>
+                    </informalexample>
                 </informalexample>
             </important>
         </section>
@@ -282,9 +300,9 @@ ALTER TABLE</computeroutput>
                     does not already exist.</para>
             </step>
             <step>
-                <para>Copy <filename>guacamole-auth-jdbc-mysql-0.9.8.jar</filename>
+                <para>Copy <filename>guacamole-auth-jdbc-mysql-0.9.9.jar</filename>
                     <emphasis>or</emphasis>
-                    <filename>guacamole-auth-jdbc-postgresql-0.9.8.jar</filename> within
+                    <filename>guacamole-auth-jdbc-postgresql-0.9.9.jar</filename> within
                         <filename>GUACAMOLE_HOME/extensions</filename>, depending on whether you are
                     using MySQL/MariaDB or PostgreSQL.</para>
             </step>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/ldap-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/ldap-auth.xml b/src/chapters/ldap-auth.xml
index 3721cbc..c04bace 100644
--- a/src/chapters/ldap-auth.xml
+++ b/src/chapters/ldap-auth.xml
@@ -82,7 +82,7 @@
             containing:</para>
         <variablelist>
             <varlistentry>
-                <term><filename>guacamole-auth-ldap-0.9.8.jar</filename></term>
+                <term><filename>guacamole-auth-ldap-0.9.9.jar</filename></term>
                 <listitem>
                     <para>The Guacamole LDAP support extension itself, which must be placed in
                             <filename>GUACAMOLE_HOME/extensions</filename>.</para>
@@ -208,7 +208,7 @@ dn: cn={4}guacConfigGroup,cn=schema,cn=config
                     does not already exist.</para>
             </step>
             <step>
-                <para>Copy <filename>guacamole-auth-ldap-0.9.8.jar</filename> within
+                <para>Copy <filename>guacamole-auth-ldap-0.9.9.jar</filename> within
                         <filename>GUACAMOLE_HOME/extensions</filename>.</para>
             </step>
             <step>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/noauth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/noauth.xml b/src/chapters/noauth.xml
index d29ddee..d25ef3e 100644
--- a/src/chapters/noauth.xml
+++ b/src/chapters/noauth.xml
@@ -35,7 +35,7 @@
             packaged as a <filename>.tar.gz</filename> file containing:</para>
         <variablelist>
             <varlistentry>
-                <term><filename>guacamole-auth-noauth-0.9.8.jar</filename></term>
+                <term><filename>guacamole-auth-noauth-0.9.9.jar</filename></term>
                 <listitem>
                     <para>The NoAuth extension itself, which must be placed in
                             <filename>GUACAMOLE_HOME/extensions</filename>.</para>
@@ -61,7 +61,7 @@
                     does not already exist.</para>
             </step>
             <step>
-                <para>Copy <filename>guacamole-auth-noauth-0.9.8.jar</filename> within
+                <para>Copy <filename>guacamole-auth-noauth-0.9.9.jar</filename> within
                         <filename>GUACAMOLE_HOME/extensions</filename>.</para>
             </step>
             <step>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/chapters/yourown.xml
----------------------------------------------------------------------
diff --git a/src/chapters/yourown.xml b/src/chapters/yourown.xml
index 0f29918..0464e24 100644
--- a/src/chapters/yourown.xml
+++ b/src/chapters/yourown.xml
@@ -112,7 +112,7 @@
     &lt;groupId>org.glyptodon.guacamole&lt;/groupId>
     &lt;artifactId>guacamole-tutorial&lt;/artifactId>
     &lt;packaging>war&lt;/packaging>
-    &lt;version>0.9.8&lt;/version>
+    &lt;version>0.9.9&lt;/version>
     &lt;name>guacamole-tutorial&lt;/name>
     &lt;url>http://guac-dev.org/&lt;/url>
 
@@ -201,7 +201,7 @@
             </informalexample>
             <para>Assuming you see the "<computeroutput>BUILD SUCCESSFUL</computeroutput>" message
                 when you build the web application, there will be a new file,
-                    <filename>target/guacamole-tutorial-0.7.0.war</filename>, which can be deployed
+                    <filename>target/guacamole-tutorial-0.9.9.war</filename>, which can be deployed
                 to your servlet container and tested. If you changed the name or version of the
                 project in the <filename>pom.xml</filename> file, the name of this new
                     <filename>.war</filename> file will be different, but it can still be found
@@ -302,7 +302,7 @@
         &lt;dependency>
             &lt;groupId>org.glyptodon.guacamole&lt;/groupId>
             &lt;artifactId>guacamole-common&lt;/artifactId>
-            &lt;version>0.9.7&lt;/version>
+            &lt;version>0.9.9&lt;/version>
             &lt;scope>compile&lt;/scope>
         &lt;/dependency>
 
@@ -310,7 +310,7 @@
         &lt;dependency>
             &lt;groupId>org.glyptodon.guacamole&lt;/groupId>
             &lt;artifactId>guacamole-common-js&lt;/artifactId>
-            &lt;version>0.9.8&lt;/version>
+            &lt;version>0.9.9&lt;/version>
             &lt;type>zip&lt;/type>
             &lt;scope>runtime&lt;/scope>
         &lt;/dependency>
@@ -329,8 +329,8 @@
                 web application should build successfully, and the Guacamole JavaScript API should
                 be accessible in the <filename>guacamole-common-js/</filename> subdirectory of your
                 web application after it is deployed. A quick check that you can access
-                    <uri>/guacamole-tutorial-0.8.0/guacamole-common-js/guacamole.js</uri> is
-                probably worth the effort.</para>
+                    <uri>/guacamole-tutorial-0.9.9/guacamole-common-js/all.min.js</uri> is probably
+                worth the effort.</para>
         </section>
         <section xml:id="simple-tunnel">
             <title>The simplest tunnel possible</title>
@@ -438,7 +438,7 @@ public class TutorialGuacamoleTunnelServlet
                 to the URL we wish to use when making HTTP requests to the servlet:
                     <uri>/tunnel</uri>. This URL is relative to the context root of the web
                 application. In the case of this web application, the final absolute URL will be
-                    <uri>/guacamole-tutorial-0.8.0/tunnel</uri>.</para>
+                    <uri>/guacamole-tutorial-0.9.9/tunnel</uri>.</para>
         </section>
         <section xml:id="simple-client">
             <title>Adding the client</title>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/99e70334/src/gug.xml
----------------------------------------------------------------------
diff --git a/src/gug.xml b/src/gug.xml
index b8d5498..f8c76da 100644
--- a/src/gug.xml
+++ b/src/gug.xml
@@ -3,7 +3,7 @@
     xmlns:xi="http://www.w3.org/2001/XInclude">
     <info>
         <title>Guacamole Manual</title>
-        <edition>0.9.8</edition>
+        <edition>0.9.9</edition>
         <author>
             <personname><firstname>Michael</firstname>
                 <surname>Jumper</surname></personname>
@@ -41,7 +41,7 @@
             application, etc.) to give a good starting point beyond simply looking at the Guacamole
             codebase.</para>
         <para>This particular edition of the <citetitle>Guacamole Manual</citetitle> covers
-            Guacamole version 0.9.8. New releases which create new features or break compatibility
+            Guacamole version 0.9.9. New releases which create new features or break compatibility
             will result in new editions of the user's guide, as will any necessary corrections. As
             the official documentation for the project, this book will always be freely available in
             its entirety online.</para>


[48/50] incubator-guacamole-manual git commit: Merge pull request #56 from glyptodon/rdp-resize

Posted by mj...@apache.org.
Merge pull request #56 from glyptodon/rdp-resize

GUAC-1164: Document new "resize-method" parameter.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/3a79a4bf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/3a79a4bf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/3a79a4bf

Branch: refs/heads/master
Commit: 3a79a4bfb0f76e484d5e5780caa90b2f49d99579
Parents: 5e778ae a30f408
Author: James Muehlner <ja...@guac-dev.org>
Authored: Thu Mar 17 13:32:17 2016 -0700
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Thu Mar 17 13:32:17 2016 -0700

----------------------------------------------------------------------
 src/chapters/configuring.xml | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
----------------------------------------------------------------------



[45/50] incubator-guacamole-manual git commit: GUAC-1378: Document modifying existing HTML with extensions.

Posted by mj...@apache.org.
GUAC-1378: Document modifying existing HTML with extensions.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/34ef2103
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/34ef2103
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/34ef2103

Branch: refs/heads/master
Commit: 34ef210366ffec5ab9b063d604d659112cde86f3
Parents: 3cc4e23
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Fri Feb 19 16:28:51 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Fri Feb 19 16:28:51 2016 -0800

----------------------------------------------------------------------
 src/chapters/guacamole-ext.xml | 112 +++++++++++++++++++++++++++++++++++-
 1 file changed, 111 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/34ef2103/src/chapters/guacamole-ext.xml
----------------------------------------------------------------------
diff --git a/src/chapters/guacamole-ext.xml b/src/chapters/guacamole-ext.xml
index 49364af..b42f967 100644
--- a/src/chapters/guacamole-ext.xml
+++ b/src/chapters/guacamole-ext.xml
@@ -41,7 +41,7 @@
                 <filename>.jar</filename> relative to the root, as well.</para>
         <para>Beyond this, the semantics and locations associated with all other resources within
             the extension are determined by the extension manifest alone.</para>
-        <section>
+        <section xml:id="extension-manifest">
             <title>Extension manifest</title>
             <para>The Guacamole extension manifest is a single JSON file,
                     <filename>guac-manifest.json</filename>, which describes the location of each
@@ -123,6 +123,21 @@
                             </entry>
                         </row>
                         <row>
+                            <entry><property>html</property></entry>
+                            <entry>
+                                <para>An array of all HTML files within the extension that should be
+                                    used to update or replace existing HTML within the Guacamole
+                                    interface. All paths within this array must be relative paths,
+                                    and will be interpreted relative to the root of the
+                                    archive.</para>
+                                <para>HTML files declared here will be automatically applied to
+                                    other HTML within the Guacamole interface when the web
+                                    application loads within the user's browser. The manner in which
+                                    the files are applied is dictated by <tag>&lt;meta ...></tag>
+                                    within those same files.</para>
+                            </entry>
+                        </row>
+                        <row>
                             <entry><property>translations</property></entry>
                             <entry>
                                 <para>An array of all translation files within the extension. All
@@ -178,6 +193,8 @@
 
     "css" : [ "theme.css" ],
 
+    "html" : [ "loginDisclaimer.html" ],
+
     "resources" : {
         "images/logo.png"   : "image/png",
         "images/cancel.png" : "image/png",
@@ -187,6 +204,99 @@
 }</programlisting>
             </informalexample>
         </section>
+        <section xml:id="patch-html">
+            <title>Updating existing HTML</title>
+            <para>The existing HTML structure of Guacamole's interface can be modified by extensions
+                through special "patch" HTML files declared by the <property>html</property>
+                property in <filename>guac-manifest.json</filename>. These files are HTML fragments
+                and are identical to any other HTML file except that they contain Guacamole-specific
+                    <tag>meta</tag> tags that instruct Guacamole to modify its own HTML in a
+                particular way. Each <tag>meta</tag> tag takes the following form:</para>
+            <informalexample>
+                <programlisting>&lt;meta name="<replaceable>NAME</replaceable>" content="<replaceable>SELECTOR</replaceable>"></programlisting>
+            </informalexample>
+            <para>where <replaceable>SELECTOR</replaceable> is a CSS selector that matches the
+                elements within the Guacamole interface that serve as a basis for the modification,
+                and <replaceable>NAME</replaceable> is any one of the following defined
+                modifications:</para>
+            <informaltable frame="all">
+                <tgroup cols="2">
+                    <colspec colname="c1" colnum="1" colwidth="1*"/>
+                    <colspec colname="c2" colnum="2" colwidth="4*"/>
+                    <thead>
+                        <row>
+                            <entry>Name</entry>
+                            <entry>Description</entry>
+                        </row>
+                    </thead>
+                    <tbody>
+                        <row>
+                            <entry><property>before</property></entry>
+                            <entry>
+                                <para>Inserts the specified HTML immediately before any element
+                                    matching the CSS selector.</para>
+                            </entry>
+                        </row>
+                        <row>
+                            <entry><property>after</property></entry>
+                            <entry>
+                                <para>Inserts the specified HTML immediately after any element
+                                    matching the CSS selector.</para>
+                            </entry>
+                        </row>
+                        <row>
+                            <entry><property>replace</property></entry>
+                            <entry>
+                                <para>Replaces any element matching the CSS selector with the
+                                    specified HTML.</para>
+                            </entry>
+                        </row>
+                        <row>
+                            <entry><property>before-children</property></entry>
+                            <entry>
+                                <para>Inserts the specified HTML immediately before the first child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</para>
+                            </entry>
+                        </row>
+                        <row>
+                            <entry><property>after-children</property></entry>
+                            <entry>
+                                <para>Inserts the specified HTML immediately after the last child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</para>
+                            </entry>
+                        </row>
+                        <row>
+                            <entry><property>replace-children</property></entry>
+                            <entry>
+                                <para>Replaces the entire contents of any element matching the CSS
+                                    selector with the specified HTML.</para>
+                            </entry>
+                        </row>
+                    </tbody>
+                </tgroup>
+            </informaltable>
+            <para>For example, to add a welcome message and link to some corporate privacy policy (a
+                fairly common need), you would add an HTML file like the following:</para>
+            <informalexample>
+                <programlisting>&lt;meta name="after" content=".login-ui .login-dialog">
+
+&lt;div class="welcome">
+    &lt;h2>Welcome to our Guacamole server!&lt;/h2>
+    &lt;p>
+        Please be sure to read our &lt;a href="/path/to/some/privacy.html">privacy
+        policy&lt;/a> before continuing.
+    &lt;/p>
+&lt;/div></programlisting>
+            </informalexample>
+            <para>After the extension is installed and Guacamole is restarted, the "welcome" div and
+                its contents will automatically be inserted directly below the login dialog (the
+                only element that would match <code>.login-ui .login-dialog</code>) as if they were
+                part of Guacamole's HTML in the first place.</para>
+        </section>
     </section>
     <section xml:id="environment">
         <title>Accessing the server configuration</title>


[07/50] incubator-guacamole-manual git commit: Merge pull request #39 from glyptodon/update-history-search-ui

Posted by mj...@apache.org.
Merge pull request #39 from glyptodon/update-history-search-ui

GUAC-1373: Update documentation to reflect change from "End time" column to "Duration"

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/3c50cf91
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/3c50cf91
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/3c50cf91

Branch: refs/heads/master
Commit: 3c50cf91baaae3e062128fb86a090ea16525fac7
Parents: a887839 dc58379
Author: James Muehlner <ja...@guac-dev.org>
Authored: Mon Nov 30 11:17:44 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Mon Nov 30 11:17:44 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml        |   4 ++--
 src/chapters/images/manage-history.png | Bin 164681 -> 145747 bytes
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[23/50] incubator-guacamole-manual git commit: GUAC-1435: GuacamoleTunnel is not concrete. Document usage of SimpleGuacamoleTunnel instead.

Posted by mj...@apache.org.
GUAC-1435: GuacamoleTunnel is not concrete. Document usage of SimpleGuacamoleTunnel instead.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/ebdd7fb1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/ebdd7fb1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/ebdd7fb1

Branch: refs/heads/master
Commit: ebdd7fb11173300cfd93e85e707ff20c42837176
Parents: 92f0489
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Dec 15 15:12:25 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Dec 15 15:12:25 2015 -0800

----------------------------------------------------------------------
 src/chapters/guacamole-common.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/ebdd7fb1/src/chapters/guacamole-common.xml
----------------------------------------------------------------------
diff --git a/src/chapters/guacamole-common.xml b/src/chapters/guacamole-common.xml
index b9cad80..91e0c18 100644
--- a/src/chapters/guacamole-common.xml
+++ b/src/chapters/guacamole-common.xml
@@ -79,7 +79,7 @@
         GuacamoleSocket socket;
 
         // Return a new tunnel which uses the connected socket
-        return new GuacamoleTunnel(socket);
+        return new SimpleGuacamoleTunnel(socket);
 
     }
 


[09/50] incubator-guacamole-manual git commit: Merge pull request #40 from glyptodon/user-filtering

Posted by mj...@apache.org.
Merge pull request #40 from glyptodon/user-filtering

GUAC-1406: Update administration docs with respect to user filtering.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/929bfd70
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/929bfd70
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/929bfd70

Branch: refs/heads/master
Commit: 929bfd70d530ca63e9a914062a95160596781e80
Parents: 3c50cf9 5cddc11
Author: James Muehlner <ja...@guac-dev.org>
Authored: Thu Dec 3 12:18:53 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Thu Dec 3 12:18:53 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml      |  13 +++++++------
 src/chapters/images/manage-users.png | Bin 23747 -> 26018 bytes
 2 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------



[06/50] incubator-guacamole-manual git commit: GUAC-1373: Update documentation to reflect change from "End time" column to "Duration" in history UI.

Posted by mj...@apache.org.
GUAC-1373: Update documentation to reflect change from "End time" column to "Duration" in history UI.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/dc58379d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/dc58379d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/dc58379d

Branch: refs/heads/master
Commit: dc58379d124ee48e3f77b3ab09d365907c59f11c
Parents: a887839
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Nov 25 11:32:13 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Nov 25 11:32:13 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml        |   4 ++--
 src/chapters/images/manage-history.png | Bin 164681 -> 145747 bytes
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/dc58379d/src/chapters/administration.xml
----------------------------------------------------------------------
diff --git a/src/chapters/administration.xml b/src/chapters/administration.xml
index 04e58ab..768eddd 100644
--- a/src/chapters/administration.xml
+++ b/src/chapters/administration.xml
@@ -100,8 +100,8 @@
         </indexterm>
         <para>Clicking "History" navigates to the connection history screen. The connection history
             screen displays a table of the most recent connections, including the user that used
-            that connection, the time the connection began, and the time the connection
-            ended.</para>
+            that connection, the time the connection began, and how long the connection was
+            used.</para>
         <informalfigure>
             <screenshot>
                 <mediaobject>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/dc58379d/src/chapters/images/manage-history.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/manage-history.png b/src/chapters/images/manage-history.png
index 33206a4..f6b1433 100644
Binary files a/src/chapters/images/manage-history.png and b/src/chapters/images/manage-history.png differ


[04/50] incubator-guacamole-manual git commit: GUAC-363: Document Hyper-V parameter requirements.

Posted by mj...@apache.org.
GUAC-363: Document Hyper-V parameter requirements.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/b9b4abf9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/b9b4abf9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/b9b4abf9

Branch: refs/heads/master
Commit: b9b4abf9f891842fdc6038a5238b4ecf10beda8d
Parents: 69ba150
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Fri Nov 6 11:05:01 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Fri Nov 6 16:01:24 2015 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 39 +++++++++++++++++++++++++++++++++------
 1 file changed, 33 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/b9b4abf9/src/chapters/configuring.xml
----------------------------------------------------------------------
diff --git a/src/chapters/configuring.xml b/src/chapters/configuring.xml
index 17f705b..09b5bba 100644
--- a/src/chapters/configuring.xml
+++ b/src/chapters/configuring.xml
@@ -1258,16 +1258,17 @@ tcp6       0      0 :::4713                 :::*                    LISTEN</comp
                                             <secondary>TLS</secondary>
                                         </indexterm>The security mode to use for the RDP connection.
                                         This mode dictates how data will be encrypted and what type
-                                        of authentication will be performed, if any. By default, the
-                                        server is allowed to control what type of security is
-                                        used.</para>
+                                        of authentication will be performed, if any. By default,
+                                        standard RDP encryption is requested, as it is the most
+                                        widely supported.</para>
                                     <para>Possible values are:</para>
                                     <variablelist>
                                         <varlistentry>
                                             <term><constant>rdp</constant></term>
                                             <listitem>
-                                                <para>Standard RDP encryption. This mode should be
-                                                  supported by all RDP servers.</para>
+                                                <para>Standard RDP encryption. <emphasis>This is the
+                                                  default</emphasis> and should be supported by all
+                                                  RDP servers.</para>
                                             </listitem>
                                         </varlistentry>
                                         <varlistentry>
@@ -1292,7 +1293,7 @@ tcp6       0      0 :::4713                 :::*                    LISTEN</comp
                                             <term><constant>any</constant></term>
                                             <listitem>
                                                 <para>Allow the server to choose the type of
-                                                  security. This is the default.</para>
+                                                  security.</para>
                                             </listitem>
                                         </varlistentry>
                                     </variablelist>
@@ -1731,6 +1732,32 @@ ed272546-87bd-4db9-acba-e36e1a9ca20a
                     means for selecting virtual machines behind Hyper-V, other RDP servers may use
                     it as well. It is up to the RDP server itself to determine whether the
                     preconnection ID, BLOB, or both will be used, and what their values mean.</para>
+                <para>If you do intend to use Hyper-V, beware that its built-in RDP server uses
+                    slightly different parameters for both authentication and the port number, and
+                    Guacamole's defaults will not work. In most cases, you will need to do the
+                    following when connecting to Hyper-V:</para>
+                <orderedlist>
+                    <listitem>
+                        <para>Set "<parameter>port</parameter>" to "<constant>2179</constant>", as
+                            this is the default port used by Hyper-V. The standard RDP port is 3389,
+                            and Guacamole will use port 3389 unless a different value is
+                            specified.</para>
+                    </listitem>
+                    <listitem>
+                        <para>Specify both "<parameter>username</parameter>" and
+                                "<parameter>password</parameter>" appropriately, and set
+                                "<parameter>security</parameter>" to "<constant>nla</constant>" or
+                                "<constant>any</constant>". Hyper-V requires Network Level
+                            Authentication from connecting clients. Guacamole's default is to use
+                            standard RDP encryption without Network Level Authentication, which
+                            Hyper-V does not support.</para>
+                    </listitem>
+                    <listitem>
+                        <para>If necessary, set "<parameter>ignore-cert</parameter>" to
+                                "<constant>true</constant>". Hyper-V may use a self-signed
+                            certificate.</para>
+                    </listitem>
+                </orderedlist>
                 <informaltable frame="all">
                     <indexterm>
                         <primary>parameters</primary>


[38/50] incubator-guacamole-manual git commit: Merge pull request #51 from glyptodon/text-recording

Posted by mj...@apache.org.
Merge pull request #51 from glyptodon/text-recording

GUAC-1452: Document new SSH and telnet parameters for recording typescripts.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/0bcf5778
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/0bcf5778
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/0bcf5778

Branch: refs/heads/master
Commit: 0bcf5778b3108bbcfcec6c3e979f8725cf9fda74
Parents: 6da4c00 78c52c1
Author: James Muehlner <ja...@guac-dev.org>
Authored: Wed Jan 27 13:50:47 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Wed Jan 27 13:50:47 2016 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 206 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 206 insertions(+)
----------------------------------------------------------------------



[31/50] incubator-guacamole-manual git commit: Merge pull request #30 from celldee/master

Posted by mj...@apache.org.
Merge pull request #30 from celldee/master

GUAC-1363: Correct Docker command to generate PostgreSQL initializati…

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/fcccae68
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/fcccae68
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/fcccae68

Branch: refs/heads/master
Commit: fcccae687cf72e82497ecd0aa75382d1602b4e2e
Parents: 765fe6f 24df79b
Author: Mike Jumper <mi...@guac-dev.org>
Authored: Thu Dec 17 13:19:29 2015 -0800
Committer: Mike Jumper <mi...@guac-dev.org>
Committed: Thu Dec 17 13:19:29 2015 -0800

----------------------------------------------------------------------
 src/chapters/docker.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[03/50] incubator-guacamole-manual git commit: Merge pull request #37 from glyptodon/hyper-v

Posted by mj...@apache.org.
Merge pull request #37 from glyptodon/hyper-v

GUAC-363: Document usage of Guacamole with Hyper-V.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/69ba1500
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/69ba1500
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/69ba1500

Branch: refs/heads/master
Commit: 69ba15005a0c2b69514736ddb41aaa06eeede332
Parents: 141ff77 921059f
Author: James Muehlner <ja...@guac-dev.org>
Authored: Tue Nov 3 22:32:08 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Tue Nov 3 22:32:08 2015 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 82 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)
----------------------------------------------------------------------



[26/50] incubator-guacamole-manual git commit: GUAC-1436: Correct authentication tutorial such that it builds against 0.9.9.

Posted by mj...@apache.org.
GUAC-1436: Correct authentication tutorial such that it builds against 0.9.9.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/5c4baabb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/5c4baabb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/5c4baabb

Branch: refs/heads/master
Commit: 5c4baabb812336b9525846569664c08a9e05a8cd
Parents: 636dccd
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Dec 16 13:13:21 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Dec 16 13:13:21 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml | 65 +++++++++++++++++++++++----------------
 1 file changed, 39 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/5c4baabb/src/chapters/custom-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/custom-auth.xml b/src/chapters/custom-auth.xml
index d23db23..5977336 100644
--- a/src/chapters/custom-auth.xml
+++ b/src/chapters/custom-auth.xml
@@ -122,7 +122,12 @@ import org.glyptodon.guacamole.net.auth.Credentials;
 import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
 
 public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
-       
+
+    @Override
+    public String getIdentifier() {
+        return "tutorial";
+    }
+
     @Override
     public Map&lt;String, GuacamoleConfiguration>
         getAuthorizedConfigurations(Credentials credentials)
@@ -136,19 +141,21 @@ public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider
 }</programlisting>
         </example>
         <para>To conform with Maven, this skeleton file must be placed within
-                <filename>src/main/java/net/sourceforge/guacamole/auth</filename> as
+                <filename>src/main/java/org/glyptodon/guacamole/auth</filename> as
                 <filename>TutorialAuthenticationProvider.java</filename>.</para>
         <para>Notice how simple the authentication provider is. The
                 <classname>AuthenticationProvider</classname> interface requires nothing more than a
-            single <methodname>getAuthorizedConfigurations()</methodname> implementation, which must
+            unique identifier (we will use "tutorial") and a single
+                <methodname>getAuthorizedConfigurations()</methodname> implementation, which must
             return a <classname>Map</classname> of <classname>GuacamoleConfiguration</classname>
             each associated with some arbitrary unique ID. This unique ID will be presented to the
             user in the connection list after they log in.</para>
-        <para>For now, we just return <varname>null</varname>, which will cause Guacamole to report
-            an invalid login for every attempt. Note that there is a difference in semantics between
-            returning an empty map and returning <varname>null</varname>, as the former indicates
-            the credentials are authorized but simply have no associated configurations, while the
-            latter indicates the credentials are not authorized at all.</para>
+        <para>For now, <methodname>getAuthorizedConfigurations()</methodname> will just return
+                <varname>null</varname>. This will cause Guacamole to report an invalid login for
+            every attempt. Note that there is a difference in semantics between returning an empty
+            map and returning <varname>null</varname>, as the former indicates the credentials are
+            authorized but simply have no associated configurations, while the latter indicates the
+            credentials are not authorized at all.</para>
     </section>
     <section xml:id="user-auth-example">
         <title>Actually authenticating the user</title>
@@ -284,18 +291,21 @@ public Map&lt;String, GuacamoleConfiguration>
     getAuthorizedConfigurations(Credentials credentials)
     throws GuacamoleException {
 
-    // Get username
-    String username = GuacamoleProperties.getRequiredProperty(
-        TutorialProperties.TUTORIAL_USER
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
     );      
 
     // If wrong username, fail
     if (!username.equals(credentials.getUsername()))
         return null;
 
-    // Get password
-    String password = GuacamoleProperties.getRequiredProperty(
-        TutorialProperties.TUTORIAL_PASSWORD
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
     );      
 
     // If wrong password, fail
@@ -326,18 +336,21 @@ public Map&lt;String, GuacamoleConfiguration>
     getAuthorizedConfigurations(Credentials credentials)
     throws GuacamoleException {
 
-    // Get username
-    String username = GuacamoleProperties.getRequiredProperty(
-        TutorialProperties.TUTORIAL_USER
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
     );      
 
     // If wrong username, fail
     if (!username.equals(credentials.getUsername()))
         return null;
 
-    // Get password
-    String password = GuacamoleProperties.getRequiredProperty(
-        TutorialProperties.TUTORIAL_PASSWORD
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
     );      
 
     // If wrong password, fail
@@ -352,19 +365,19 @@ public Map&lt;String, GuacamoleConfiguration>
     GuacamoleConfiguration config = new GuacamoleConfiguration();
 
     // Set protocol specified in properties
-    config.setProtocol(GuacamoleProperties.getRequiredProperty(
-        TutorialProperties.TUTORIAL_PROTOCOL
+    config.setProtocol(environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PROTOCOL
     ));
 
     // Set all parameters, splitting at commas
-    for (String parameterValue : GuacamoleProperties.getRequiredProperty(
-        TutorialProperties.TUTORIAL_PARAMETERS
+    for (String parameterValue : environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PARAMETERS
     ).split(",\\s*")) {
 
         // Find the equals sign
         int equals = parameterValue.indexOf('=');
         if (equals == -1)
-            throw new GuacamoleException("Required equals sign missing");
+            throw new GuacamoleServerException("Required equals sign missing");
 
         // Get name and value from parameter string
         String name = parameterValue.substring(0, equals);
@@ -375,7 +388,7 @@ public Map&lt;String, GuacamoleConfiguration>
 
     }
 
-    configs.put("DEFAULT", config);
+    configs.put("Tutorial Connection", config);
     return configs;
 
 }</programlisting>


[11/50] incubator-guacamole-manual git commit: Merge pull request #41 from glyptodon/connection-filtering

Posted by mj...@apache.org.
Merge pull request #41 from glyptodon/connection-filtering

GUAC-1406: Document filtering connections. Update screenshots.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/8d4abd22
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/8d4abd22
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/8d4abd22

Branch: refs/heads/master
Commit: 8d4abd22c8344d0801f23ab76a528a8adf621e16
Parents: 929bfd7 a83f673
Author: James Muehlner <ja...@guac-dev.org>
Authored: Tue Dec 8 12:45:42 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Tue Dec 8 12:45:42 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml               |   4 +++-
 src/chapters/images/guacamole-home-screen.png | Bin 76552 -> 77377 bytes
 src/chapters/images/manage-connections.png    | Bin 55585 -> 56119 bytes
 src/chapters/using.xml                        |   8 +++++---
 4 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[08/50] incubator-guacamole-manual git commit: GUAC-1406: Update administration docs with respect to user filtering.

Posted by mj...@apache.org.
GUAC-1406: Update administration docs with respect to user filtering.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/5cddc119
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/5cddc119
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/5cddc119

Branch: refs/heads/master
Commit: 5cddc1195941f42fe13c1bf9b61a66b74d700e55
Parents: 3c50cf9
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Thu Dec 3 12:16:57 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Thu Dec 3 12:16:57 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml      |  13 +++++++------
 src/chapters/images/manage-users.png | Bin 23747 -> 26018 bytes
 2 files changed, 7 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/5cddc119/src/chapters/administration.xml
----------------------------------------------------------------------
diff --git a/src/chapters/administration.xml b/src/chapters/administration.xml
index 768eddd..3f06bf0 100644
--- a/src/chapters/administration.xml
+++ b/src/chapters/administration.xml
@@ -138,12 +138,13 @@
         </indexterm>
         <para>Clicking "Users" within the list of settings sections will take you to the user
             management screen. Here you can add new users or edit the properties and privileges of
-            existing users.</para>
-        <para>To add a new user, type the username of the new user within the text box inside the
-            user management screen, and click the "New User" button. The new user will be added and
-            made available. The new user will have no access to any existing connections, nor any
-            administrative privileges, and you will need to manually set the user's password before
-            they will be able to log in.</para>
+            existing users. If you have a large number of users, you can also enter search terms
+            within the "Filter" field to filter the list of users by username.</para>
+        <para>To add a new user, click the "New User" button. This will take you to a screen where
+            you will be allowed to enter the details of the new user, such as the password and
+            username. Note that, unless you specify otherwise, the new user will have no access to
+            any existing connections, nor any administrative privileges, and you will need to
+            manually set the user's password before they will be able to log in.</para>
         <informalfigure>
             <screenshot>
                 <mediaobject>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/5cddc119/src/chapters/images/manage-users.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/manage-users.png b/src/chapters/images/manage-users.png
index cdc0cce..52ada83 100644
Binary files a/src/chapters/images/manage-users.png and b/src/chapters/images/manage-users.png differ


[35/50] incubator-guacamole-manual git commit: GUAC-1451: Document GUAC_DATE and GUAC_TIME tokens. Clarify wording.

Posted by mj...@apache.org.
GUAC-1451: Document GUAC_DATE and GUAC_TIME tokens. Clarify wording.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/ef70c008
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/ef70c008
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/ef70c008

Branch: refs/heads/master
Commit: ef70c0084fbbcc28ce0f5ac1a7b9db6e61da78b7
Parents: 9f9c32d
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Fri Jan 22 12:05:44 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Fri Jan 22 12:05:44 2016 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/ef70c008/src/chapters/configuring.xml
----------------------------------------------------------------------
diff --git a/src/chapters/configuring.xml b/src/chapters/configuring.xml
index 09b5bba..9176ef2 100644
--- a/src/chapters/configuring.xml
+++ b/src/chapters/configuring.xml
@@ -2745,7 +2745,7 @@ ed272546-87bd-4db9-acba-e36e1a9ca20a
                 <varlistentry>
                     <term><varname>${GUAC_USERNAME}</varname></term>
                     <listitem>
-                        <para>The username of the current Guacamole user. When a user accesses this
+                        <para>The username of the current Guacamole user. When a user accesses a
                             connection, this token will be dynamically replaced with the username
                             they provided when logging in to Guacamole.</para>
                     </listitem>
@@ -2753,11 +2753,31 @@ ed272546-87bd-4db9-acba-e36e1a9ca20a
                 <varlistentry>
                     <term><varname>${GUAC_PASSWORD}</varname></term>
                     <listitem>
-                        <para>The password of the current Guacamole user. When a user accesses this
+                        <para>The password of the current Guacamole user. When a user accesses a
                             connection, this token will be dynamically replaced with the password
                             they used when logging in to Guacamole.</para>
                     </listitem>
                 </varlistentry>
+                <varlistentry>
+                    <term><varname>${GUAC_DATE}</varname></term>
+                    <listitem>
+                        <para>The current date in the local time zone of the Guacamole server. This
+                            will be written in "YYYYMMDD" format, where "YYYY" is the year, "MM" is
+                            the month number, and "DD" is the day of the month, all zero-padded.
+                            When a user accesses a connection, this token will be dynamically
+                            replaced with the date that the connection began.</para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term><varname>${GUAC_TIME}</varname></term>
+                    <listitem>
+                        <para>The current time in the local time zone of the Guacamole server. This
+                            will be written in "HHMMSS" format, where "HH" is hours in 24-hour time,
+                            "MM" is minutes, and "SS" is seconds, all zero-padded. When a user
+                            accesses a connection, this token will be dynamically replaced with the
+                            time that the connection began.</para>
+                    </listitem>
+                </varlistentry>
             </variablelist>
             <para>Note that these tokens are replaced dynamically each time a connection is used. If
                 two different users access the same connection at the same time, both users will be


[39/50] incubator-guacamole-manual git commit: GUAC-1410: Document parameter value for Japanese keyboard layout.

Posted by mj...@apache.org.
GUAC-1410: Document parameter value for Japanese keyboard layout.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/78760a4d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/78760a4d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/78760a4d

Branch: refs/heads/master
Commit: 78760a4d2dd829144132c2d9f89fbe83437c1b0c
Parents: 0bcf577
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Mon Feb 1 15:00:29 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Mon Feb 1 15:00:29 2016 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/78760a4d/src/chapters/configuring.xml
----------------------------------------------------------------------
diff --git a/src/chapters/configuring.xml b/src/chapters/configuring.xml
index 4bb9c64..af59998 100644
--- a/src/chapters/configuring.xml
+++ b/src/chapters/configuring.xml
@@ -1445,6 +1445,12 @@ tcp6       0      0 :::4713                 :::*                    LISTEN</comp
                                             </listitem>
                                         </varlistentry>
                                         <varlistentry>
+                                            <term><constant>ja-jp-qwerty</constant></term>
+                                            <listitem>
+                                                <para>Japanese keyboard</para>
+                                            </listitem>
+                                        </varlistentry>
+                                        <varlistentry>
                                             <term><constant>sv-se-qwerty</constant></term>
                                             <listitem>
                                                 <para>Swedish keyboard</para>


[10/50] incubator-guacamole-manual git commit: GUAC-1406: Document filtering connections within the home screen and admin UI. Update screenshots.

Posted by mj...@apache.org.
GUAC-1406: Document filtering connections within the home screen and admin UI. Update screenshots.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/a83f6736
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/a83f6736
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/a83f6736

Branch: refs/heads/master
Commit: a83f67367328424a43b2d2c942d9d860af3bf403
Parents: 929bfd7
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Mon Dec 7 11:10:08 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Mon Dec 7 11:10:08 2015 -0800

----------------------------------------------------------------------
 src/chapters/administration.xml               |   4 +++-
 src/chapters/images/guacamole-home-screen.png | Bin 76552 -> 77377 bytes
 src/chapters/images/manage-connections.png    | Bin 55585 -> 56119 bytes
 src/chapters/using.xml                        |   8 +++++---
 4 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/a83f6736/src/chapters/administration.xml
----------------------------------------------------------------------
diff --git a/src/chapters/administration.xml b/src/chapters/administration.xml
index 3f06bf0..177f9b7 100644
--- a/src/chapters/administration.xml
+++ b/src/chapters/administration.xml
@@ -193,7 +193,9 @@
         </indexterm>
         <para>Clicking "Connections" within the list of settings sections will take you to the
             connection management screen. The connection management screen allows administrators to
-            create and edit connections and connection groups.</para>
+            create and edit connections and connection groups. If you have a large number of
+            connections, you can also enter search terms within the "Filter" field to filter the
+            list of connections by name or protocol.</para>
         <para>To add a new connection or group, click the "New Connection" or "New Group" button.
             This will take you to a screen where you will be allowed to enter the details of the new
             object, such as its location, parameters, and name. This name should be descriptive, but

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/a83f6736/src/chapters/images/guacamole-home-screen.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/guacamole-home-screen.png b/src/chapters/images/guacamole-home-screen.png
index ba20c61..ae95880 100644
Binary files a/src/chapters/images/guacamole-home-screen.png and b/src/chapters/images/guacamole-home-screen.png differ

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/a83f6736/src/chapters/images/manage-connections.png
----------------------------------------------------------------------
diff --git a/src/chapters/images/manage-connections.png b/src/chapters/images/manage-connections.png
index 9475c23..b72e25f 100644
Binary files a/src/chapters/images/manage-connections.png and b/src/chapters/images/manage-connections.png differ

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/a83f6736/src/chapters/using.xml
----------------------------------------------------------------------
diff --git a/src/chapters/using.xml b/src/chapters/using.xml
index ae072c1..f01c7ca 100644
--- a/src/chapters/using.xml
+++ b/src/chapters/using.xml
@@ -17,9 +17,11 @@
         <para>Once you have successfully logged in, you will be taken to either the Guacamole home
             screen, where all available connections are listed, or directly to a connection, if you
             only have access to one connection.</para>
-        <para>The list of connections on the home screen contains all connections for which you have
-            been granted access. If you have used Guacamole in this specific web browser before, you
-            will also see thumbnails of recently used connections.</para>
+        <para>The home screen will contain a list of all connections to which you have access, along
+            with thumbnails of any recently used or active connections. If you have access to a
+            large number of connections and wish to quickly locate a specific connection, you can
+            also enter search terms within the "Filter" field to filter the list of connections by
+            name.</para>
         <informalfigure>
             <screenshot>
                 <mediaobject>


[29/50] incubator-guacamole-manual git commit: Merge pull request #47 from glyptodon/deprecate-properties

Posted by mj...@apache.org.
Merge pull request #47 from glyptodon/deprecate-properties

GUAC-1436: Do not encourage use of deprecated GuacamoleProperties class

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/765fe6fe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/765fe6fe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/765fe6fe

Branch: refs/heads/master
Commit: 765fe6fe50e1d9024ab064e0a2bbba636303fb3c
Parents: 9f677b8 02ec9c6
Author: James Muehlner <ja...@guac-dev.org>
Authored: Thu Dec 17 13:10:35 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Thu Dec 17 13:10:35 2015 -0800

----------------------------------------------------------------------
 src/chapters/custom-auth.xml                    | 75 ++++++++++------
 src/chapters/guacamole-common.xml               | 93 ++------------------
 tutorials/guacamole-auth-tutorial/.gitignore    |  3 +
 tutorials/guacamole-auth-tutorial/pom.xml       | 54 ++++++++++++
 .../auth/TutorialAuthenticationProvider.java    | 87 ++++++++++++++++++
 .../auth/TutorialGuacamoleProperties.java       | 64 ++++++++++++++
 6 files changed, 263 insertions(+), 113 deletions(-)
----------------------------------------------------------------------



[14/50] incubator-guacamole-manual git commit: GUAC-1166: Document new ldap-encryption-method property.

Posted by mj...@apache.org.
GUAC-1166: Document new ldap-encryption-method property.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/25852ccc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/25852ccc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/25852ccc

Branch: refs/heads/master
Commit: 25852cccdee323cdcd3ca18979f78b2688a9b5e1
Parents: f0954c4
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Dec 9 12:58:03 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Dec 9 12:59:31 2015 -0800

----------------------------------------------------------------------
 src/chapters/ldap-auth.xml | 34 ++++++++++++++++++++++++++++++----
 1 file changed, 30 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/25852ccc/src/chapters/ldap-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/ldap-auth.xml b/src/chapters/ldap-auth.xml
index b19bf50..3721cbc 100644
--- a/src/chapters/ldap-auth.xml
+++ b/src/chapters/ldap-auth.xml
@@ -247,10 +247,36 @@ dn: cn={4}guacConfigGroup,cn=schema,cn=config
                 <varlistentry>
                     <term><property>ldap-port</property></term>
                     <listitem>
-                        <para>The port your LDAP server listens on. If omitted, the standard LDAP
-                            port of 389 will be used. Unless you manually configured your LDAP
-                            server to do otherwise, your LDAP server probably listens on port
-                            389.</para>
+                        <para>The port your LDAP server listens on. If omitted, the standard LDAP or
+                            LDAPS port will be used, depending on the encryption method specified
+                            with <property>ldap-encryption-method</property> (if any). Unencrypted
+                            LDAP uses the standard port of 389, while LDAPS uses port 636. Unless
+                            you manually configured your LDAP server to do otherwise, your LDAP
+                            server probably listens on port 389.</para>
+                    </listitem>
+                </varlistentry>
+                <varlistentry>
+                    <term><property>ldap-encryption-method</property></term>
+                    <listitem>
+                        <para>The encryption mechanism that Guacamole should use when communicating
+                            with your LDAP server. Legal values are "none" for unencrypted LDAP,
+                            "ssl" for LDAP over SSL/TLS (commonly known as LDAPS), or "starttls" for
+                            STARTTLS. If omitted, encryption will not be used.</para>
+                        <para>If you do use encryption when connecting to your LDAP server, you will
+                            need to ensure that its certificate chain can be verified using the
+                            certificates in Java's trust store, often referred to as
+                                <filename>cacerts</filename>. If this is not the case, you will need
+                            to use Java's <command>keytool</command> utility to either add the
+                            necessary certificates or to create a new trust store containing those
+                            certificates.</para>
+                        <para>If you will be using your own trust store and not the default
+                                <filename>cacerts</filename>, you will need to specify the full path
+                            to that trust store using the system property
+                                <property>javax.net.ssl.trustStore</property>. Note that this is a
+                            system property and <emphasis>not</emphasis> a Guacamole property; it
+                            must be specified when starting the JVM using the <option>-D</option>
+                            option. Your servlet container will provide some means of specifying
+                            startup options for the JVM.</para>
                     </listitem>
                 </varlistentry>
                 <varlistentry>


[46/50] incubator-guacamole-manual git commit: Merge pull request #55 from glyptodon/GUAC-1378

Posted by mj...@apache.org.
Merge pull request #55 from glyptodon/GUAC-1378

GUAC-1378: Document modifying existing HTML with extensions.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/5e778aef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/5e778aef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/5e778aef

Branch: refs/heads/master
Commit: 5e778aeff5aec9dc0d057ee16caf5c9fc0a8c06f
Parents: 3cc4e23 34ef210
Author: James Muehlner <ja...@guac-dev.org>
Authored: Fri Feb 19 16:37:44 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Fri Feb 19 16:37:44 2016 -0800

----------------------------------------------------------------------
 src/chapters/guacamole-ext.xml | 112 +++++++++++++++++++++++++++++++++++-
 1 file changed, 111 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[24/50] incubator-guacamole-manual git commit: Merge pull request #46 from glyptodon/deprecate-session

Posted by mj...@apache.org.
Merge pull request #46 from glyptodon/deprecate-session

GUAC-1435: Do not encourage use of deprecated GuacamoleSession

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/9f677b84
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/9f677b84
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/9f677b84

Branch: refs/heads/master
Commit: 9f677b841a5ee82c49e74a694f604c44cfc66e5d
Parents: 335cefc ebdd7fb
Author: James Muehlner <ja...@guac-dev.org>
Authored: Tue Dec 15 16:40:37 2015 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Tue Dec 15 16:40:37 2015 -0800

----------------------------------------------------------------------
 src/chapters/guacamole-common.xml               | 51 ++++---------
 src/chapters/yourown.xml                        | 36 ++++-----
 tutorials/guacamole-tutorial/.gitignore         |  3 +
 tutorials/guacamole-tutorial/pom.xml            | 79 ++++++++++++++++++++
 .../example/TutorialGuacamoleTunnelServlet.java | 38 ++++++++++
 .../src/main/webapp/WEB-INF/web.xml             | 28 +++++++
 .../src/main/webapp/index.html                  | 68 +++++++++++++++++
 7 files changed, 245 insertions(+), 58 deletions(-)
----------------------------------------------------------------------



[43/50] incubator-guacamole-manual git commit: GUAC-1467: Document configuring the Guacamole Docker image for LDAP.

Posted by mj...@apache.org.
GUAC-1467: Document configuring the Guacamole Docker image for LDAP.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/2c8cab36
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/2c8cab36
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/2c8cab36

Branch: refs/heads/master
Commit: 2c8cab3653b394da66e7214700d35de783166945
Parents: 717c8c3
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Tue Feb 9 22:35:19 2016 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Tue Feb 9 22:35:19 2016 -0800

----------------------------------------------------------------------
 src/chapters/docker.xml | 194 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 194 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/2c8cab36/src/chapters/docker.xml
----------------------------------------------------------------------
diff --git a/src/chapters/docker.xml b/src/chapters/docker.xml
index bcc8d12..ff33162 100644
--- a/src/chapters/docker.xml
+++ b/src/chapters/docker.xml
@@ -581,5 +581,199 @@
                     />.</para>
             </section>
         </section>
+        <section xml:id="guacamole-docker-ldap">
+            <title>Deploying Guacamole with LDAP authentication</title>
+            <para>Before deploying Guacamole with the intent of using LDAP for authentication,
+                please ensure that you have each of the following already prepared:</para>
+            <orderedlist>
+                <listitem>
+                    <para>A Docker container running the <systemitem>glyptodon/guacd</systemitem>
+                        image. Guacamole needs <package>guacd</package> in order to function, and
+                        the Guacamole Docker image depends on a linked Docker container running
+                            <package>guacd</package>.</para>
+                </listitem>
+                <listitem>
+                    <para>Network access to a working LDAP server.</para>
+                </listitem>
+            </orderedlist>
+            <section xml:id="deploying-guacamole-docker-ldap">
+                <title>Deploying Guacamole</title>
+                <para>Linking Guacamole to your LDAP directory will require additional configuration
+                    parameters specified via environment variables. These variables collectively
+                    describe how Guacamole will connect to LDAP:</para>
+                <informaltable frame="all">
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="4*"/>
+                        <thead>
+                            <row>
+                                <entry>Variable</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><envar>LDAP_HOSTNAME</envar></entry>
+                                <entry>
+                                    <para>The hostname or IP address of your LDAP server.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_USER_BASE_DN</envar></entry>
+                                <entry>
+                                    <para>The base of the DN for all Guacamole users. All Guacamole
+                                        users that will be authenticating against LDAP must be
+                                        descendents of this base DN.</para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
+                <para>Additional optional environment variables may be used to configure the details
+                    of your LDAP directory hierarchy, encryption, or to enable more flexible
+                    searching for user accounts:</para>
+                <informaltable frame="all">
+                    <tgroup cols="2">
+                        <colspec colname="c1" colnum="1" colwidth="1*"/>
+                        <colspec colname="c2" colnum="2" colwidth="2.25*"/>
+                        <thead>
+                            <row>
+                                <entry>Variable</entry>
+                                <entry>Description</entry>
+                            </row>
+                        </thead>
+                        <tbody>
+                            <row>
+                                <entry><envar>LDAP_PORT</envar></entry>
+                                <entry>
+                                    <para>The port your LDAP server listens on. By default, this
+                                        will be 389 for unencrypted LDAP or LDAP using STARTTLS, and
+                                        636 for LDAP over SSL (LDAPS).</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_ENCRYPTION_METHOD</envar></entry>
+                                <entry>
+                                    <para>The encryption mechanism that Guacamole should use when
+                                        communicating with your LDAP server. Legal values are "none"
+                                        for unencrypted LDAP, "ssl" for LDAP over SSL/TLS (commonly
+                                        known as LDAPS), or "starttls" for STARTTLS. If omitted,
+                                        encryption will not be used.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_GROUP_BASE_DN</envar></entry>
+                                <entry>
+                                    <para>The base of the DN for all groups that may be referenced
+                                        within Guacamole configurations using the standard
+                                            <property>seeAlso</property> attribute. All groups which
+                                        will be used to control access to Guacamole configurations
+                                        must be descendents of this base DN. <emphasis>If this
+                                            variable is omitted, the <property>seeAlso</property>
+                                            attribute will have no effect on Guacamole
+                                            configurations.</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_SEARCH_BIND_DN</envar></entry>
+                                <entry>
+                                    <para>The DN (Distinguished Name) of the user to bind as when
+                                        authenticating users that are attempting to log in. If
+                                        specified, Guacamole will query the LDAP directory to
+                                        determine the DN of each user that logs in. If omitted, each
+                                        user's DN will be derived directly using the base DN
+                                        specified with <envar>LDAP_USER_BASE_DN</envar>.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_SEARCH_BIND_PASSWORD</envar></entry>
+                                <entry>
+                                    <para>The password to provide to the LDAP server when binding as
+                                            <envar>LDAP_SEARCH_BIND_DN</envar> to authenticate other
+                                        users. This variable is only used if
+                                            <envar>LDAP_SEARCH_BIND_DN</envar> is specified. If
+                                        omitted, but <envar>LDAP_SEARCH_BIND_DN</envar> is
+                                        specified, Guacamole will attempt to bind with the LDAP
+                                        server without a password.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_USERNAME_ATTRIBUTE</envar></entry>
+                                <entry>
+                                    <para>The attribute or attributes which contain the username
+                                        within all Guacamole user objects in the LDAP directory.
+                                        Usually, and by default, this will simply be
+                                            "<property>uid</property>". If your LDAP directory
+                                        contains users whose usernames are dictated by different
+                                        attributes, multiple attributes can be specified here,
+                                        separated by commas, but beware: <emphasis>doing so requires
+                                            that a search DN be provided with
+                                                <envar>LDAP_SEARCH_BIND_DN</envar></emphasis>.</para>
+                                </entry>
+                            </row>
+                            <row>
+                                <entry><envar>LDAP_CONFIG_BASE_DN</envar></entry>
+                                <entry>
+                                    <para>The base of the DN for all Guacamole configurations. If
+                                        omitted, the configurations of Guacamole connections will
+                                        simply not be queried from the LDAP directory, and you will
+                                        need to store them elsewhere, such as within a MySQL or
+                                        PostgreSQL database.</para>
+                                </entry>
+                            </row>
+                        </tbody>
+                    </tgroup>
+                </informaltable>
+                <para>Once your <package>guacd</package> container is ready, and the values of the
+                    above variables are known, Guacamole can be deployed through Docker:</para>
+                <informalexample>
+                    <screen><prompt>$</prompt> <command>docker</command> run --name <replaceable>some-guacamole</replaceable> --link <replaceable>some-guacd</replaceable>:guacd \
+    -e LDAP_HOSTNAME=<replaceable>172.17.42.1</replaceable>                            \
+    -e LDAP_USER_BASE_DN=<replaceable>ou=people,dc=example,dc=com</replaceable>        \
+    -e LDAP_CONFIG_BASE_DN=<replaceable>ou=connections,dc=example,dc=com</replaceable> \
+    -d -p 8080:8080 glyptodon/guacamole</screen>
+                </informalexample>
+                <para>As documented in <xref xmlns:xlink="http://www.w3.org/1999/xlink"
+                        linkend="ldap-auth"/>, Guacamole does support combining LDAP with a MySQL or
+                    PostgreSQL database, and this can be configured with the Guacamole Docker image,
+                    as well. By providing the required environment variables for both systems,
+                    Guacamole will automatically be configured to use both when the Docker image
+                    starts:</para>
+                <informalexample>
+                    <screen><prompt>$</prompt> <command>docker</command> run --name <replaceable>some-guacamole</replaceable> --link <replaceable>some-guacd</replaceable>:guacd \
+    -e LDAP_HOSTNAME=<replaceable>172.17.42.1</replaceable>                            \
+    -e LDAP_USER_BASE_DN=<replaceable>ou=people,dc=example,dc=com</replaceable>        \
+    -e LDAP_CONFIG_BASE_DN=<replaceable>ou=connections,dc=example,dc=com</replaceable> \
+    <emphasis>-e MYSQL_HOSTNAME=<replaceable>172.17.42.1</replaceable>   \
+    -e MYSQL_DATABASE=<replaceable>guacamole_db</replaceable>  \
+    -e MYSQL_USER=<replaceable>guacamole_user</replaceable>    \
+    -e MYSQL_PASSWORD=<replaceable>some_password</replaceable> \</emphasis>
+    -d -p 8080:8080 glyptodon/guacamole</screen>
+                </informalexample>
+                <para>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</para>
+            </section>
+            <section xml:id="verifying-guacamole-auth-ldap">
+                <title>Verifying the Guacamole install</title>
+                <para>Now that the Guacamole image is running, Guacamole should be accessible at
+                            <uri>http://<replaceable>HOSTNAME</replaceable>:8080/guacamole/</uri>,
+                    where <replaceable>HOSTNAME</replaceable> is the hostname or address of the
+                    machine hosting Docker.</para>
+                <para>If you cannot access Guacamole, check the logs using Docker to determine if
+                    something is wrong. Configuration parameters may have been given incorrectly, or
+                    the database may be improperly initialized:</para>
+                <informalexample>
+                    <screen><prompt>$</prompt> <command>docker</command> logs <replaceable>some-guacamole</replaceable></screen>
+                </informalexample>
+                <para>If Guacamole has been successfully installed, you will see the Guacamole login
+                    screen, and should be able to login using an LDAP account beneath
+                        <envar>LDAP_USER_BASE_DN</envar>. You will be able to access any connections
+                    defined within <envar>LDAP_CONFIG_BASE_DN</envar> for which your user has
+                    access. If a MySQL or PostgreSQL database has also been configured, and your
+                    user has an account within that database, you will also be able to access your
+                    connections from that database.</para>
+            </section>
+        </section>
     </section>
 </chapter>


[44/50] incubator-guacamole-manual git commit: Merge pull request #54 from glyptodon/ldap-docker

Posted by mj...@apache.org.
Merge pull request #54 from glyptodon/ldap-docker

GUAC-1467: Document configuring the Guacamole Docker image for LDAP.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/3cc4e239
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/3cc4e239
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/3cc4e239

Branch: refs/heads/master
Commit: 3cc4e2395997c951933a288273e3fddc4f8385a7
Parents: 717c8c3 2c8cab3
Author: James Muehlner <ja...@guac-dev.org>
Authored: Tue Feb 9 23:10:16 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Tue Feb 9 23:10:16 2016 -0800

----------------------------------------------------------------------
 src/chapters/docker.xml | 194 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 194 insertions(+)
----------------------------------------------------------------------



[16/50] incubator-guacamole-manual git commit: GUAC-1432: Document clipboard stream instruction. Remove incorrect documentation covering legacy clipboard event.

Posted by mj...@apache.org.
GUAC-1432: Document clipboard stream instruction. Remove incorrect documentation covering legacy clipboard event.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/8af1857c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/8af1857c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/8af1857c

Branch: refs/heads/master
Commit: 8af1857ce93db089e2a6622cb31e3ae0688317ed
Parents: 3922c01
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Mon Dec 14 15:38:34 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Mon Dec 14 15:38:34 2015 -0800

----------------------------------------------------------------------
 src/chapters/protocol.xml                       | 14 +++++-----
 .../instructions/client/event/clipboard.xml     | 23 ----------------
 .../instructions/server/event/clipboard.xml     | 18 -------------
 .../instructions/server/stream/clipboard.xml    | 28 ++++++++++++++++++++
 src/references/protocol.xml                     | 10 +------
 5 files changed, 37 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/8af1857c/src/chapters/protocol.xml
----------------------------------------------------------------------
diff --git a/src/chapters/protocol.xml b/src/chapters/protocol.xml
index 6b7da4d..842250a 100644
--- a/src/chapters/protocol.xml
+++ b/src/chapters/protocol.xml
@@ -316,12 +316,14 @@
     </section>
     <section xml:id="guacamole-protocol-streaming">
         <title>Streams and objects</title>
-        <para>Guacamole supports transfer of audio, video, and image data, as well as files and
-            arbitrary named pipes.</para>
-        <para>Streams can be allocated directly with "audio" or "video" instructions for the sake of
-            playing media, with file instructions for file transfer, with "pipe" instructions for
-            transfer of arbitrary data between client and server, or exposed as structured sets of
-            named streams known as "objects".</para>
+        <para>Guacamole supports transfer of clipboard contents, audio, video, and image data, as
+            well as files and arbitrary named pipes.</para>
+        <para>Streams are allocated directly with instructions that associate the new stream with
+            particular semantics and metadata, such as the "audio" or "video" instructions used for
+            playing media, the "file" instruction used for file transfer, and the "pipe" instruction
+            for transfer of completely  arbitrary data between client and server. In some cases, the
+            availability and semantics of streams may be explicitly advertised using structured sets
+            of named streams known as "objects".</para>
         <para>Once a stream is allocated, data is sent along the stream in chunks using "blob"
             instructions, which may be acknowledged by the receiving end by "ack" instructions. The
             end of the stream is finally signalled with an "end" instruction.</para>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/8af1857c/src/references/instructions/client/event/clipboard.xml
----------------------------------------------------------------------
diff --git a/src/references/instructions/client/event/clipboard.xml b/src/references/instructions/client/event/clipboard.xml
deleted file mode 100644
index c9ae7c2..0000000
--- a/src/references/instructions/client/event/clipboard.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<section xml:id="client-clipboard-instruction" 
-    xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en"
-    xmlns:xi="http://www.w3.org/2001/XInclude">
-
-
-
-    <title>clipboard</title>
-    <indexterm>
-        <primary>clipboard</primary>
-    </indexterm>
-    <para>Sets the server-side clipboard to the given data.</para>
-    <variablelist>
-        <varlistentry>
-            <term><parameter>data</parameter></term>
-            <listitem>
-                <para>The data the clipboard should be set to.</para>
-            </listitem>
-        </varlistentry>
-    </variablelist>
-
-</section>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/8af1857c/src/references/instructions/server/event/clipboard.xml
----------------------------------------------------------------------
diff --git a/src/references/instructions/server/event/clipboard.xml b/src/references/instructions/server/event/clipboard.xml
deleted file mode 100644
index ccc4906..0000000
--- a/src/references/instructions/server/event/clipboard.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<section xml:id="server-clipboard-instruction" xmlns="http://docbook.org/ns/docbook"
-    version="5.0" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude">
-    <title>clipboard</title>
-    <indexterm>
-        <primary>clipboard</primary>
-    </indexterm>
-    <para>Sets the client-side clipboard to the given data.</para>
-    <variablelist>
-        <varlistentry>
-            <term><parameter>data</parameter></term>
-            <listitem>
-                <para>The data the clipboard should be set to.</para>
-            </listitem>
-        </varlistentry>
-    </variablelist>
-</section>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/8af1857c/src/references/instructions/server/stream/clipboard.xml
----------------------------------------------------------------------
diff --git a/src/references/instructions/server/stream/clipboard.xml b/src/references/instructions/server/stream/clipboard.xml
new file mode 100644
index 0000000..09ce151
--- /dev/null
+++ b/src/references/instructions/server/stream/clipboard.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<section xml:id="clipboard-instruction" xmlns="http://docbook.org/ns/docbook" version="5.0"
+    xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude">
+    <title>clipboard</title>
+    <indexterm>
+        <primary>clipboard</primary>
+    </indexterm>
+    <para>Allocates a new stream, associating it with the given clipboard metadata. The clipboard
+        data will later be sent along the stream with blob instructions. If sent by the client, this
+        data will be the contents of the client-side clipboard. If sent by the server, this data
+        will be the contents of the clipboard within the remote desktop.</para>
+    <variablelist>
+        <varlistentry>
+            <term><parameter>stream</parameter></term>
+            <listitem>
+                <para>The index of the stream to allocate.</para>
+            </listitem>
+        </varlistentry>
+        <varlistentry>
+            <term><parameter>mimetype</parameter></term>
+            <listitem>
+                <para>The mimetype of the clipboard data being sent. In most cases, this will be
+                    "text/plain".</para>
+            </listitem>
+        </varlistentry>
+    </variablelist>
+</section>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/8af1857c/src/references/protocol.xml
----------------------------------------------------------------------
diff --git a/src/references/protocol.xml b/src/references/protocol.xml
index ee15d8b..121df33 100644
--- a/src/references/protocol.xml
+++ b/src/references/protocol.xml
@@ -56,6 +56,7 @@
         <xi:include href="instructions/server/stream/ack.xml"/>
         <xi:include href="instructions/server/stream/audio.xml"/>
         <xi:include href="instructions/server/stream/blob.xml"/>
+        <xi:include href="instructions/server/stream/clipboard.xml"/>
         <xi:include href="instructions/server/stream/end.xml"/>
         <xi:include href="instructions/server/stream/file.xml"/>
         <xi:include href="instructions/server/stream/img.xml"/>
@@ -125,16 +126,7 @@
             <primary>client instructions</primary>
             <secondary>events</secondary>
         </indexterm>
-        <xi:include href="instructions/client/event/clipboard.xml"/>
         <xi:include href="instructions/client/event/key.xml"/>
         <xi:include href="instructions/client/event/mouse.xml"/>
     </section>
-    <section xml:id="server-events">
-        <title>Server events</title>
-        <indexterm>
-            <primary>server instructions</primary>
-            <secondary>events</secondary>
-        </indexterm>
-        <xi:include href="instructions/server/event/clipboard.xml"/>
-    </section>
 </appendix>


[36/50] incubator-guacamole-manual git commit: Merge pull request #50 from glyptodon/time-tokens

Posted by mj...@apache.org.
Merge pull request #50 from glyptodon/time-tokens

GUAC-1451: Document GUAC_DATE and GUAC_TIME tokens.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/6da4c003
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/6da4c003
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/6da4c003

Branch: refs/heads/master
Commit: 6da4c0032f969ebe782edb5c349602961c7c7c94
Parents: 9f9c32d ef70c00
Author: James Muehlner <ja...@guac-dev.org>
Authored: Fri Jan 22 14:19:30 2016 -0800
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Fri Jan 22 14:19:30 2016 -0800

----------------------------------------------------------------------
 src/chapters/configuring.xml | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[27/50] incubator-guacamole-manual git commit: GUAC-1436: Go through authentication tutorial. Add resulting source.

Posted by mj...@apache.org.
GUAC-1436: Go through authentication tutorial. Add resulting source.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/45c2d74f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/45c2d74f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/45c2d74f

Branch: refs/heads/master
Commit: 45c2d74f5962f3d9b64bcfeae41743873409f24f
Parents: 5c4baab
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Wed Dec 16 13:14:09 2015 -0800
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Wed Dec 16 13:14:09 2015 -0800

----------------------------------------------------------------------
 tutorials/guacamole-auth-tutorial/.gitignore    |  3 +
 tutorials/guacamole-auth-tutorial/pom.xml       | 54 +++++++++++++
 .../auth/TutorialAuthenticationProvider.java    | 82 ++++++++++++++++++++
 .../auth/TutorialGuacamoleProperties.java       | 59 ++++++++++++++
 4 files changed, 198 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/45c2d74f/tutorials/guacamole-auth-tutorial/.gitignore
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/.gitignore b/tutorials/guacamole-auth-tutorial/.gitignore
new file mode 100644
index 0000000..c3a023f
--- /dev/null
+++ b/tutorials/guacamole-auth-tutorial/.gitignore
@@ -0,0 +1,3 @@
+*~
+target/
+META-INF/

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/45c2d74f/tutorials/guacamole-auth-tutorial/pom.xml
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/pom.xml b/tutorials/guacamole-auth-tutorial/pom.xml
new file mode 100644
index 0000000..33d5c50
--- /dev/null
+++ b/tutorials/guacamole-auth-tutorial/pom.xml
@@ -0,0 +1,54 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.glyptodon.guacamole</groupId>
+    <artifactId>guacamole-auth-tutorial</artifactId>
+    <packaging>jar</packaging>
+    <version>0.9.9</version>
+    <name>guacamole-auth-tutorial</name>
+    <url>http://guac-dev.org/</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <build>
+        <plugins>
+
+            <!-- Written for 1.6 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.6</source>
+                    <target>1.6</target>
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+
+    <dependencies>
+
+        <!-- Guacamole Java API -->
+        <dependency>
+            <groupId>org.glyptodon.guacamole</groupId>
+            <artifactId>guacamole-common</artifactId>
+            <version>0.9.9</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Guacamole Extension API -->
+        <dependency>
+            <groupId>org.glyptodon.guacamole</groupId>
+            <artifactId>guacamole-ext</artifactId>
+            <version>0.9.9</version>
+            <scope>provided</scope>
+        </dependency>
+
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/45c2d74f/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
new file mode 100644
index 0000000..4084b6b
--- /dev/null
+++ b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialAuthenticationProvider.java
@@ -0,0 +1,82 @@
+package org.glyptodon.guacamole.auth;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.glyptodon.guacamole.GuacamoleException;
+import org.glyptodon.guacamole.GuacamoleServerException;
+import org.glyptodon.guacamole.environment.Environment;
+import org.glyptodon.guacamole.environment.LocalEnvironment;
+import org.glyptodon.guacamole.net.auth.simple.SimpleAuthenticationProvider;
+import org.glyptodon.guacamole.net.auth.Credentials;
+import org.glyptodon.guacamole.protocol.GuacamoleConfiguration;
+
+public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
+       
+    @Override
+    public String getIdentifier() {
+        return "tutorial";
+    }
+
+    @Override
+    public Map<String, GuacamoleConfiguration>
+        getAuthorizedConfigurations(Credentials credentials)
+        throws GuacamoleException {
+
+        // Get the Guacamole server environment
+        Environment environment = new LocalEnvironment();
+
+        // Get username from guacamole.properties
+        String username = environment.getRequiredProperty(
+            TutorialGuacamoleProperties.TUTORIAL_USER
+        );
+
+        // If wrong username, fail
+        if (!username.equals(credentials.getUsername()))
+            return null;
+
+        // Get password from guacamole.properties
+        String password = environment.getRequiredProperty(
+            TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+        );
+
+        // If wrong password, fail
+        if (!password.equals(credentials.getPassword()))
+            return null;
+
+        // Successful login. Return configurations.
+        Map<String, GuacamoleConfiguration> configs =
+            new HashMap<String, GuacamoleConfiguration>();
+
+        // Create new configuration
+        GuacamoleConfiguration config = new GuacamoleConfiguration();
+
+        // Set protocol specified in properties
+        config.setProtocol(environment.getRequiredProperty(
+            TutorialGuacamoleProperties.TUTORIAL_PROTOCOL
+        ));
+
+        // Set all parameters, splitting at commas
+        for (String parameterValue : environment.getRequiredProperty(
+            TutorialGuacamoleProperties.TUTORIAL_PARAMETERS
+        ).split(",\\s*")) {
+
+            // Find the equals sign
+            int equals = parameterValue.indexOf('=');
+            if (equals == -1)
+                throw new GuacamoleServerException("Required equals sign missing");
+
+            // Get name and value from parameter string
+            String name = parameterValue.substring(0, equals);
+            String value = parameterValue.substring(equals+1);
+
+            // Set parameter as specified
+            config.setParameter(name, value);
+
+        }
+
+        configs.put("Tutorial Connection", config);
+        return configs;
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/45c2d74f/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
----------------------------------------------------------------------
diff --git a/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
new file mode 100644
index 0000000..4f98d0c
--- /dev/null
+++ b/tutorials/guacamole-auth-tutorial/src/main/java/org/glyptodon/guacamole/auth/TutorialGuacamoleProperties.java
@@ -0,0 +1,59 @@
+package org.glyptodon.guacamole.auth;
+
+import org.glyptodon.guacamole.properties.StringGuacamoleProperty;
+
+public class TutorialGuacamoleProperties {
+
+    /**
+     * This class should not be instantiated.
+     */
+    private TutorialGuacamoleProperties() {}
+
+    /**
+     * The only user to allow.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_USER = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-user"; }
+
+    };
+
+    /**
+     * The password required for the specified user.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PASSWORD = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-password"; }
+
+    };
+
+
+    /**
+     * The protocol to use when connecting.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PROTOCOL = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-protocol"; }
+
+    };
+
+
+    /**
+     * All parameters associated with the connection, as a comma-delimited
+     * list of name="value" 
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PARAMETERS = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-parameters"; }
+
+    };
+
+}


[49/50] incubator-guacamole-manual git commit: GUAC-1512: Document use of overall concurrency limits within JDBC auth and Docker.

Posted by mj...@apache.org.
GUAC-1512: Document use of overall concurrency limits within JDBC auth and Docker.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/95574103
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/95574103
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/95574103

Branch: refs/heads/master
Commit: 95574103a8b29d78775f11a111ae35931d16d02e
Parents: 5e778ae
Author: Michael Jumper <mi...@guac-dev.org>
Authored: Thu Mar 17 14:14:36 2016 -0700
Committer: Michael Jumper <mi...@guac-dev.org>
Committed: Thu Mar 17 14:14:43 2016 -0700

----------------------------------------------------------------------
 src/chapters/docker.xml    | 26 ++++++++++++++++++++++++++
 src/chapters/jdbc-auth.xml | 11 +++++++++++
 2 files changed, 37 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/95574103/src/chapters/docker.xml
----------------------------------------------------------------------
diff --git a/src/chapters/docker.xml b/src/chapters/docker.xml
index ff33162..c6d0fef 100644
--- a/src/chapters/docker.xml
+++ b/src/chapters/docker.xml
@@ -209,6 +209,19 @@
                         </thead>
                         <tbody>
                             <row>
+                                <entry><envar>MYSQL_ABSOLUTE_MAX_CONNECTIONS</envar></entry>
+                                <entry>
+                                    <para>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</para>
+                                    <para><emphasis>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
                                 <entry><envar>MYSQL_DEFAULT_MAX_CONNECTIONS</envar></entry>
                                 <entry>
                                     <para>The maximum number of concurrent connections to allow to
@@ -447,6 +460,19 @@
                         </thead>
                         <tbody>
                             <row>
+                                <entry><envar>POSTGRES_ABSOLUTE_MAX_CONNECTIONS</envar></entry>
+                                <entry>
+                                    <para>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</para>
+                                    <para><emphasis>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</emphasis></para>
+                                </entry>
+                            </row>
+                            <row>
                                 <entry><envar>POSTGRES_DEFAULT_MAX_CONNECTIONS</envar></entry>
                                 <entry>
                                     <para>The maximum number of concurrent connections to allow to

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/blob/95574103/src/chapters/jdbc-auth.xml
----------------------------------------------------------------------
diff --git a/src/chapters/jdbc-auth.xml b/src/chapters/jdbc-auth.xml
index a755c62..fba024b 100644
--- a/src/chapters/jdbc-auth.xml
+++ b/src/chapters/jdbc-auth.xml
@@ -464,6 +464,17 @@ result of setting "postgresql-disallow-simultaneous-connections" to
 "false", set "postgresql-default-max-connections" to "0" and
 "postgresql-default-max-group-connections" to "0".</computeroutput></screen>
                 </informalexample>
+                <para>If you wish to impose an absolute limit on the number of connections that can
+                    be established through Guacamole, ignoring which users or connections are
+                    involved, this can be done as well. By default, Guacamole will impose no such
+                    limit:</para>
+                <informalexample>
+                    <programlisting># MySQL
+mysql-absolute-max-connections: 0
+
+# PostgreSQL
+postgresql-absolute-max-connections: 0</programlisting>
+                </informalexample>
             </section>
         </section>
         <section>


[50/50] incubator-guacamole-manual git commit: Merge pull request #57 from glyptodon/overall-limits

Posted by mj...@apache.org.
Merge pull request #57 from glyptodon/overall-limits

GUAC-1512: Document use of overall concurrency limits within JDBC auth and Docker.

Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/commit/87824ed4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/tree/87824ed4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-manual/diff/87824ed4

Branch: refs/heads/master
Commit: 87824ed4fb8787b21128ade15475ca7f9d9603e1
Parents: 3a79a4b 9557410
Author: James Muehlner <ja...@guac-dev.org>
Authored: Thu Mar 17 14:29:02 2016 -0700
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Thu Mar 17 14:29:02 2016 -0700

----------------------------------------------------------------------
 src/chapters/docker.xml    | 26 ++++++++++++++++++++++++++
 src/chapters/jdbc-auth.xml | 11 +++++++++++
 2 files changed, 37 insertions(+)
----------------------------------------------------------------------