diff --git a/guacamole/pom.xml b/guacamole/pom.xml
index 18962a08c..ccedff3f8 100644
--- a/guacamole/pom.xml
+++ b/guacamole/pom.xml
@@ -95,7 +95,7 @@
net.sourceforge.guacamole
guacamole-common-js
- 0.7.0
+ 0.7.1
zip
runtime
diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/AuthorizeTagHandler.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/AuthorizeTagHandler.java
index b9b580dbe..6263fe1ab 100644
--- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/AuthorizeTagHandler.java
+++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/AuthorizeTagHandler.java
@@ -19,6 +19,7 @@ package net.sourceforge.guacamole.net.basic.xml.user_mapping;
*/
import net.sourceforge.guacamole.net.basic.auth.Authorization;
+import net.sourceforge.guacamole.net.basic.auth.UserMapping;
import net.sourceforge.guacamole.net.basic.xml.TagHandler;
import net.sourceforge.guacamole.protocol.GuacamoleConfiguration;
import org.xml.sax.Attributes;
@@ -44,6 +45,22 @@ public class AuthorizeTagHandler implements TagHandler {
*/
private GuacamoleConfiguration default_config = null;
+ /**
+ * The UserMapping this authorization belongs to.
+ */
+ private UserMapping parent;
+
+ /**
+ * Creates a new AuthorizeTagHandler that parses an Authorization owned
+ * by the given UserMapping.
+ *
+ * @param parent The UserMapping that owns the Authorization this handler
+ * will parse.
+ */
+ public AuthorizeTagHandler(UserMapping parent) {
+ this.parent = parent;
+ }
+
@Override
public void init(Attributes attributes) throws SAXException {
@@ -70,23 +87,16 @@ public class AuthorizeTagHandler implements TagHandler {
}
+ parent.addAuthorization(this.asAuthorization());
+
}
@Override
public TagHandler childElement(String localName) throws SAXException {
// "connection" tag
- if (localName.equals("connection")) {
-
- // Get tag handler for connection tag
- ConnectionTagHandler tagHandler = new ConnectionTagHandler();
-
- // Store configuration stub
- GuacamoleConfiguration config_stub = tagHandler.asGuacamoleConfiguration();
- authorization.addConfiguration(tagHandler.getName(), config_stub);
-
- return tagHandler;
- }
+ if (localName.equals("connection"))
+ return new ConnectionTagHandler(authorization);
// "param" tag
if (localName.equals("param")) {
diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/ConnectionTagHandler.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/ConnectionTagHandler.java
index 62c51ff4f..31dda722d 100644
--- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/ConnectionTagHandler.java
+++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/ConnectionTagHandler.java
@@ -18,6 +18,7 @@ package net.sourceforge.guacamole.net.basic.xml.user_mapping;
* along with this program. If not, see .
*/
+import net.sourceforge.guacamole.net.basic.auth.Authorization;
import net.sourceforge.guacamole.net.basic.xml.TagHandler;
import net.sourceforge.guacamole.protocol.GuacamoleConfiguration;
import org.xml.sax.Attributes;
@@ -40,9 +41,26 @@ public class ConnectionTagHandler implements TagHandler {
*/
private String name;
+ /**
+ * The Authorization this connection belongs to.
+ */
+ private Authorization parent;
+
+ /**
+ * Creates a new ConnectionTagHandler that parses a Connection owned by
+ * the given Authorization.
+ *
+ * @param parent The Authorization that will own this Connection once
+ * parsed.
+ */
+ public ConnectionTagHandler(Authorization parent) {
+ this.parent = parent;
+ }
+
@Override
public void init(Attributes attributes) throws SAXException {
name = attributes.getValue("name");
+ parent.addConfiguration(name, this.asGuacamoleConfiguration());
}
@Override
diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/UserMappingTagHandler.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/UserMappingTagHandler.java
index 842871fe8..16d26edde 100644
--- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/UserMappingTagHandler.java
+++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/xml/user_mapping/UserMappingTagHandler.java
@@ -18,7 +18,6 @@ package net.sourceforge.guacamole.net.basic.xml.user_mapping;
* along with this program. If not, see .
*/
-import net.sourceforge.guacamole.net.basic.auth.Authorization;
import net.sourceforge.guacamole.net.basic.auth.UserMapping;
import net.sourceforge.guacamole.net.basic.xml.TagHandler;
import org.xml.sax.Attributes;
@@ -45,18 +44,8 @@ public class UserMappingTagHandler implements TagHandler {
public TagHandler childElement(String localName) throws SAXException {
// Start parsing of authorize tags, add to list of all authorizations
- if (localName.equals("authorize")) {
-
- // Get tag handler for authorize tag
- AuthorizeTagHandler tagHandler = new AuthorizeTagHandler();
-
- // Store authorization stub in map of authorizations
- Authorization auth_stub = tagHandler.asAuthorization();
- user_mapping.addAuthorization(auth_stub);
-
- return tagHandler;
-
- }
+ if (localName.equals("authorize"))
+ return new AuthorizeTagHandler(user_mapping);
return null;