diff --git a/guacamole/web-client/src/net/sourceforge/guacamole/net/XMLGuacamoleServlet.java b/guacamole/web-client/src/net/sourceforge/guacamole/net/XMLGuacamoleServlet.java
deleted file mode 100644
index 2fef0c647..000000000
--- a/guacamole/web-client/src/net/sourceforge/guacamole/net/XMLGuacamoleServlet.java
+++ /dev/null
@@ -1,132 +0,0 @@
-
-package net.sourceforge.guacamole.net;
-
-/*
- * Guacamole - Clientless Remote Desktop
- * Copyright (C) 2010 Michael Jumper
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import net.sourceforge.guacamole.Client;
-import net.sourceforge.guacamole.GuacamoleException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public abstract class XMLGuacamoleServlet extends GuacamoleServlet {
-
- @Override
- protected final void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
-
- response.setContentType("text/xml");
- response.setHeader("Cache-Control", "no-store");
- response.setHeader("Pragma", "no-cache");
- response.setDateHeader("Expires", 0);
-
- try {
-
- // Create document
- DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
- DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
- Document document = documentBuilder.newDocument();
-
- // Root element
- Element root = document.createElement("guacamole");
- document.appendChild(root);
-
- try {
- handleRequest(session, request, root);
- }
- catch (Throwable t) {
- addFatalError(root, t.getMessage());
-
- // FATAL error ... try to disconnect
- if (session != null) {
- Client client = session.getClient();
- try {
- if (client != null)
- client.disconnect();
- }
- catch (GuacamoleException e) {
- addFatalError(root, e.getMessage());
- }
- }
- }
-
- // Set up transformer
- TransformerFactory transformerFactory = TransformerFactory.newInstance();
- Transformer transformer = transformerFactory.newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- //transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
- transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
-
- // Write XML using transformer
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- StreamResult result = new StreamResult(bos);
- DOMSource source = new DOMSource(document);
- transformer.transform(source, result);
-
-
- bos.flush();
-
- byte[] xmlData = bos.toByteArray();
- response.setContentLength(xmlData.length);
- OutputStream outputStream = response.getOutputStream();
- outputStream.write(xmlData);
-
- // Close stream
- outputStream.close();
- }
- catch (ParserConfigurationException e) {
- throw new GuacamoleException(e);
- }
- catch (TransformerConfigurationException e) {
- throw new GuacamoleException(e);
- }
- catch (TransformerException e) {
- throw new GuacamoleException(e);
- }
- catch (IOException e) {
- throw new GuacamoleException(e);
- }
-
-
- }
-
- private void addFatalError(Element root, String message) {
- Element error = root.getOwnerDocument().createElement("error");
- error.setAttribute("type", "fatal");
- error.setTextContent(message);
- root.appendChild(error);
- }
-
- protected abstract void handleRequest(GuacamoleSession session, ServletRequest request, Element root) throws GuacamoleException;
-
-}
diff --git a/guacamole/web-client/src/net/sourceforge/guacamole/net/input/Inbound.java b/guacamole/web-client/src/net/sourceforge/guacamole/net/tunnel/Inbound.java
similarity index 81%
rename from guacamole/web-client/src/net/sourceforge/guacamole/net/input/Inbound.java
rename to guacamole/web-client/src/net/sourceforge/guacamole/net/tunnel/Inbound.java
index 7be7bc6cb..7fdca3001 100644
--- a/guacamole/web-client/src/net/sourceforge/guacamole/net/input/Inbound.java
+++ b/guacamole/web-client/src/net/sourceforge/guacamole/net/tunnel/Inbound.java
@@ -1,4 +1,4 @@
-package net.sourceforge.guacamole.net.input;
+package net.sourceforge.guacamole.net.tunnel;
/*
* Guacamole - Clientless Remote Desktop
@@ -18,24 +18,24 @@ package net.sourceforge.guacamole.net.input;
* along with this program. If not, see .
*/
-import javax.servlet.ServletRequest;
import net.sourceforge.guacamole.GuacamoleException;
-import org.w3c.dom.Element;
import java.io.Reader;
import java.io.IOException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import net.sourceforge.guacamole.net.GuacamoleServlet;
import net.sourceforge.guacamole.net.GuacamoleSession;
-import net.sourceforge.guacamole.net.XMLGuacamoleServlet;
-public class Inbound extends XMLGuacamoleServlet {
+public class Inbound extends GuacamoleServlet {
protected boolean shouldCreateSession() {
return true;
}
@Override
- protected void handleRequest(GuacamoleSession session, ServletRequest request, Element root) throws GuacamoleException {
+ protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
if (!session.isConnected())
session.connect();
diff --git a/guacamole/web-client/src/net/sourceforge/guacamole/net/output/InstructionStream.java b/guacamole/web-client/src/net/sourceforge/guacamole/net/tunnel/Outbound.java
similarity index 96%
rename from guacamole/web-client/src/net/sourceforge/guacamole/net/output/InstructionStream.java
rename to guacamole/web-client/src/net/sourceforge/guacamole/net/tunnel/Outbound.java
index 27e5e65de..942a2d72d 100644
--- a/guacamole/web-client/src/net/sourceforge/guacamole/net/output/InstructionStream.java
+++ b/guacamole/web-client/src/net/sourceforge/guacamole/net/tunnel/Outbound.java
@@ -1,4 +1,4 @@
-package net.sourceforge.guacamole.net.output;
+package net.sourceforge.guacamole.net.tunnel;
/*
* Guacamole - Clientless Remote Desktop
@@ -30,7 +30,7 @@ import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.net.GuacamoleSession;
-public class InstructionStream extends GuacamoleServlet {
+public class Outbound extends GuacamoleServlet {
@Override
protected void handleRequest(GuacamoleSession session, HttpServletRequest request, HttpServletResponse response) throws GuacamoleException {
diff --git a/guacamole/web-client/web/META-INF/context.xml b/guacamole/web-client/web/META-INF/context.xml
new file mode 100644
index 000000000..5bee3dc30
--- /dev/null
+++ b/guacamole/web-client/web/META-INF/context.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/guacamole/web-client/web/WEB-INF/web.xml b/guacamole/web-client/web/WEB-INF/web.xml
index 147eb1462..e26ab78b9 100644
--- a/guacamole/web-client/web/WEB-INF/web.xml
+++ b/guacamole/web-client/web/WEB-INF/web.xml
@@ -17,52 +17,39 @@
along with this program. If not, see .
-->
+
+
index.html
+
30
+
+
- Instruction stream servlet.
- InstructionStream
- net.sourceforge.guacamole.net.output.InstructionStream
+ Outbound servlet.
+ Outbound
+ net.sourceforge.guacamole.net.tunnel.Outbound
- InstructionStream
- /instructions
+ Outbound
+ /outbound
+
Input servlet.
Inbound
- net.sourceforge.guacamole.net.input.Inbound
+ net.sourceforge.guacamole.net.tunnel.Inbound
Inbound
/inbound
-
- Guacamole Access Restrictions
-
- Guacamole
- All servlets/pages within Guacamole.
- /*
-
-
- Only allow Guacamole users access.
- guacamole
-
-
-
- BASIC
- Guacamole
-
-
- Guacamole
- guacamole
-
+
diff --git a/guacamole/web-client/web/javascript/guacamole.js b/guacamole/web-client/web/javascript/guacamole.js
index 58800dc7c..c7b77d858 100644
--- a/guacamole/web-client/web/javascript/guacamole.js
+++ b/guacamole/web-client/web/javascript/guacamole.js
@@ -380,7 +380,7 @@ function GuacamoleClient(display) {
// Download self
var xmlhttprequest = new XMLHttpRequest();
- xmlhttprequest.open("POST", "instructions");
+ xmlhttprequest.open("POST", "outbound");
xmlhttprequest.send(null);
return xmlhttprequest;