From dcd259f93e9301ba2fe21d1cfabb7cbb402771a2 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 23 Jan 2011 15:25:37 -0800 Subject: [PATCH] Migrated to new tunnel servlet API, updated .gitignore --- guacamole/.gitignore | 1 + .../BasicFileAuthenticationProvider.java | 2 +- .../BasicGuacamoleTunnelServlet.java} | 36 +++++++++++------- .../basic/BasicLogin.java | 2 +- guacamole/src/main/webapp/WEB-INF/web.xml | 37 ++++++------------- guacamole/src/main/webapp/index.html | 2 +- 6 files changed, 37 insertions(+), 43 deletions(-) rename guacamole/src/main/java/net/sourceforge/guacamole/net/{authentication => }/basic/BasicFileAuthenticationProvider.java (99%) rename guacamole/src/main/java/net/sourceforge/guacamole/net/{authentication/basic/BasicGuacamoleClientProvider.java => basic/BasicGuacamoleTunnelServlet.java} (64%) rename guacamole/src/main/java/net/sourceforge/guacamole/net/{authentication => }/basic/BasicLogin.java (98%) diff --git a/guacamole/.gitignore b/guacamole/.gitignore index 2f7896d1d..42f4a1a64 100644 --- a/guacamole/.gitignore +++ b/guacamole/.gitignore @@ -1 +1,2 @@ target/ +*~ diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicFileAuthenticationProvider.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicFileAuthenticationProvider.java similarity index 99% rename from guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicFileAuthenticationProvider.java rename to guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicFileAuthenticationProvider.java index 380d7ed42..f81503f3c 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicFileAuthenticationProvider.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicFileAuthenticationProvider.java @@ -1,5 +1,5 @@ -package net.sourceforge.guacamole.net.authentication.basic; +package net.sourceforge.guacamole.net.basic; /* * Guacamole - Clientless Remote Desktop diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicGuacamoleClientProvider.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicGuacamoleTunnelServlet.java similarity index 64% rename from guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicGuacamoleClientProvider.java rename to guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicGuacamoleTunnelServlet.java index dfd9b384b..08c5b150b 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicGuacamoleClientProvider.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicGuacamoleTunnelServlet.java @@ -1,12 +1,4 @@ - -package net.sourceforge.guacamole.net.authentication.basic; - -import javax.servlet.http.HttpSession; -import net.sourceforge.guacamole.GuacamoleTCPClient; -import net.sourceforge.guacamole.GuacamoleException; -import net.sourceforge.guacamole.net.Configuration; -import net.sourceforge.guacamole.net.GuacamoleProperties; -import net.sourceforge.guacamole.net.authentication.GuacamoleClientProvider; +package net.sourceforge.guacamole.net.basic; /* * Guacamole - Clientless Remote Desktop @@ -26,12 +18,26 @@ import net.sourceforge.guacamole.net.authentication.GuacamoleClientProvider; * along with this program. If not, see . */ -public class BasicGuacamoleClientProvider implements GuacamoleClientProvider { +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import net.sourceforge.guacamole.GuacamoleException; +import net.sourceforge.guacamole.GuacamoleTCPClient; +import net.sourceforge.guacamole.net.Configuration; +import net.sourceforge.guacamole.net.GuacamoleProperties; +import net.sourceforge.guacamole.net.GuacamoleSession; +import net.sourceforge.guacamole.net.tunnel.GuacamoleTunnelServlet; - public GuacamoleTCPClient createClient(HttpSession session) throws GuacamoleException { +public class BasicGuacamoleTunnelServlet extends GuacamoleTunnelServlet { + + @Override + protected void doConnect(HttpServletRequest request, HttpServletResponse response) throws GuacamoleException { + + // Session must already exist from login + HttpSession httpSession = request.getSession(false); // Retrieve authorized config data from session - Configuration config = (Configuration) session.getAttribute("BASIC-LOGIN-AUTH"); + Configuration config = (Configuration) httpSession.getAttribute("BASIC-LOGIN-AUTH"); // If no data, not authorized if (config == null) @@ -43,9 +49,11 @@ public class BasicGuacamoleClientProvider implements GuacamoleClientProvider { GuacamoleTCPClient client = new GuacamoleTCPClient(hostname, port); client.connect(config); - // Return authorized session - return client; + // Set client for session + GuacamoleSession session = new GuacamoleSession(httpSession); + session.attachClient(client); } } + diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicLogin.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicLogin.java similarity index 98% rename from guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicLogin.java rename to guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicLogin.java index 8347202ac..8b12d49b9 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/authentication/basic/BasicLogin.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/BasicLogin.java @@ -1,5 +1,5 @@ -package net.sourceforge.guacamole.net.authentication.basic; +package net.sourceforge.guacamole.net.basic; /* * Guacamole - Clientless Remote Desktop diff --git a/guacamole/src/main/webapp/WEB-INF/web.xml b/guacamole/src/main/webapp/WEB-INF/web.xml index c7cbc9fb6..bf0e6c62a 100644 --- a/guacamole/src/main/webapp/WEB-INF/web.xml +++ b/guacamole/src/main/webapp/WEB-INF/web.xml @@ -26,41 +26,26 @@ 30 - + + - Connect servlet. - Connect - net.sourceforge.guacamole.net.tunnel.Connect + Tunnel servlet. + Tunnel + net.sourceforge.guacamole.net.basic.BasicGuacamoleTunnelServlet - Connect - /connect + Tunnel + /tunnel - - Outbound servlet. - Outbound - net.sourceforge.guacamole.net.tunnel.Outbound - - - Outbound - /outbound - - - Input servlet. - Inbound - net.sourceforge.guacamole.net.tunnel.Inbound - - - Inbound - /inbound - - + + BasicLogin - net.sourceforge.guacamole.net.authentication.basic.BasicLogin + net.sourceforge.guacamole.net.basic.BasicLogin BasicLogin /login + diff --git a/guacamole/src/main/webapp/index.html b/guacamole/src/main/webapp/index.html index 926fb9ca4..47d0e9b83 100644 --- a/guacamole/src/main/webapp/index.html +++ b/guacamole/src/main/webapp/index.html @@ -178,7 +178,7 @@ window.onresize(); // Instantiate client - var guac = new GuacamoleClient(display); + var guac = new GuacamoleClient(display, "tunnel"); var state = document.getElementById("state"); guac.setOnStateChangeHandler(function(clientState) {