Package org.apache.guacamole.net.auth
Class TokenInjectingConnection
- java.lang.Object
-
- org.apache.guacamole.net.auth.DelegatingConnection
-
- org.apache.guacamole.net.auth.TokenInjectingConnection
-
- All Implemented Interfaces:
Attributes
,Connectable
,Connection
,Identifiable
,ReadableAttributes
public class TokenInjectingConnection extends DelegatingConnection
Connection implementation which overrides the connect() function of an underlying Connection, adding a given set of parameter tokens to the tokens already supplied. If not supplying a static set of tokens at construction time, implementations should override eitheraddTokens(java.util.Map)
orgetTokens()
to provide tokens dynamically.
-
-
Constructor Summary
Constructors Constructor Description TokenInjectingConnection(Connection connection)
Wraps the given Connection such that the additional parameter tokens added byaddTokens(java.util.Map)
or returned bygetTokens()
are included with each invocation of connect().TokenInjectingConnection(Connection connection, Map<String,String> tokens)
Wraps the given Connection, automatically adding the given tokens to each invocation of connect().
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addTokens(Map<String,String> tokens)
Adds tokens to an in-progress call to connect().org.apache.guacamole.net.GuacamoleTunnel
connect(org.apache.guacamole.protocol.GuacamoleClientInformation info, Map<String,String> tokens)
Establishes a connection to guacd using the information associated with this object.protected Map<String,String>
getTokens()
Returns the tokens which should be added to an in-progress call to connect().-
Methods inherited from class org.apache.guacamole.net.auth.DelegatingConnection
connect, getActiveConnections, getAttributes, getConfiguration, getConnectionHistory, getDelegateConnection, getHistory, getIdentifier, getLastActive, getName, getParentIdentifier, getSharingProfileIdentifiers, setAttributes, setConfiguration, setIdentifier, setName, setParentIdentifier
-
-
-
-
Constructor Detail
-
TokenInjectingConnection
public TokenInjectingConnection(Connection connection, Map<String,String> tokens)
Wraps the given Connection, automatically adding the given tokens to each invocation of connect(). Any additional tokens which have the same name as existing tokens will override the existing values.- Parameters:
connection
- The Connection to wrap.tokens
- The additional tokens to include with each call to connect().
-
TokenInjectingConnection
public TokenInjectingConnection(Connection connection)
Wraps the given Connection such that the additional parameter tokens added byaddTokens(java.util.Map)
or returned bygetTokens()
are included with each invocation of connect(). Any additional tokens which have the same name as existing tokens will override the existing values.- Parameters:
connection
- The Connection to wrap.
-
-
Method Detail
-
getTokens
protected Map<String,String> getTokens() throws org.apache.guacamole.GuacamoleException
Returns the tokens which should be added to an in-progress call to connect(). If not overridden, this function will return the tokens provided when this instance of TokenInjectingConnection was created. If the values of existing tokens need to be considered, implementations should overrideaddTokens(java.util.Map)
instead.- Returns:
- The tokens which should be added to the in-progress call to connect().
- Throws:
org.apache.guacamole.GuacamoleException
- If the applicable tokens cannot be generated.
-
addTokens
protected void addTokens(Map<String,String> tokens) throws org.apache.guacamole.GuacamoleException
Adds tokens to an in-progress call to connect(). If not overridden, this function will add the tokens returned bygetTokens()
.- Parameters:
tokens
- A modifiable Map containing the tokens already supplied to connect().- Throws:
org.apache.guacamole.GuacamoleException
- If the applicable tokens cannot be generated.
-
connect
public org.apache.guacamole.net.GuacamoleTunnel connect(org.apache.guacamole.protocol.GuacamoleClientInformation info, Map<String,String> tokens) throws org.apache.guacamole.GuacamoleException
Description copied from interface:Connectable
Establishes a connection to guacd using the information associated with this object. The connection will be provided the given client information. Implementations which support parameter tokens should apply the given tokens when configuring the connection, such as with aTokenFilter
.- Specified by:
connect
in interfaceConnectable
- Overrides:
connect
in classDelegatingConnection
- Parameters:
info
- Information associated with the connecting client.tokens
- A Map containing the token names and corresponding values to be applied as parameter tokens when establishing the connection. If the implementation does not support parameter tokens, this Map may be ignored.- Returns:
- A fully-established GuacamoleTunnel.
- Throws:
org.apache.guacamole.GuacamoleException
- If an error occurs while connecting to guacd, or if permission to connect is denied.- See Also:
- Parameter Tokens
-
-