diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleConnection.java b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleConnection.java index f9da240c4..2dec26a94 100644 --- a/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleConnection.java +++ b/guacamole-ext/src/main/java/org/apache/guacamole/net/auth/simple/SimpleConnection.java @@ -113,8 +113,7 @@ public class SimpleConnection extends AbstractConnection { // Apply tokens to config parameters GuacamoleConfiguration filteredConfig = new GuacamoleConfiguration(config); - TokenFilter tokenFilter = new TokenFilter(); - tokenFilter.filterValues(config.getParameters()); + new TokenFilter(tokens).filterValues(filteredConfig.getParameters()); GuacamoleSocket socket; diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/token/TokenFilter.java b/guacamole-ext/src/main/java/org/apache/guacamole/token/TokenFilter.java index ab4362227..c412d184a 100644 --- a/guacamole-ext/src/main/java/org/apache/guacamole/token/TokenFilter.java +++ b/guacamole-ext/src/main/java/org/apache/guacamole/token/TokenFilter.java @@ -19,6 +19,7 @@ package org.apache.guacamole.token; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -68,7 +69,27 @@ public class TokenFilter { /** * The values of all known tokens. */ - private final Map tokenValues = new HashMap(); + private final Map tokenValues; + + /** + * Creates a new TokenFilter which has no associated tokens. Tokens must + * later be given using {@link #setToken(java.lang.String, java.lang.String)} + * or {@link #setTokens(java.util.Map)}. + */ + public TokenFilter() { + this(Collections.emptyMap()); + } + + /** + * Creates a new TokenFilter which is initialized with the given token + * name/value pairs. + * + * @param tokenValues + * A map containing token names and their corresponding values. + */ + public TokenFilter(Map tokenValues) { + this.tokenValues = new HashMap<>(tokenValues); + } /** * Sets the token having the given name to the given value. Any existing