@Override
    public GuacamoleTunnel connect(GuacamoleClientInformation info,
            Map<String, String> tokens) throws GuacamoleException {

        // Apply provided tokens over those given to connect()
        tokens = new HashMap<>(tokens);
        addTokens(tokens);

        return super.connect(info, tokens);

    }
Wraps the given ConnectionGroup such that the additional parameter
tokens added by {@link #addTokens(java.util.Map)} or returned by
{@link #getTokens()} are included with each invocation of connect(). Any
additional tokens which have the same name as existing tokens will
override the existing values.

@param connectionGroup
    The ConnectionGroup to wrap.
guacamole-ext/src/main/java/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.java