diff options
author | Simon Rettberg | 2020-05-05 18:40:42 +0200 |
---|---|---|
committer | Simon Rettberg | 2020-05-05 18:40:42 +0200 |
commit | 7d88e471709c13dc4df388a73b3824901c9fef09 (patch) | |
tree | 1c9892ac6186dc1c8792a6715fab5261fb189afb /src | |
parent | Adapt to new json format (diff) | |
download | bwlp-guacamole-ext-7d88e471709c13dc4df388a73b3824901c9fef09.tar.gz bwlp-guacamole-ext-7d88e471709c13dc4df388a73b3824901c9fef09.tar.xz bwlp-guacamole-ext-7d88e471709c13dc4df388a73b3824901c9fef09.zip |
Prevent user from sticking to connection if it was reset.
Make a copy of the AvailableConnection for the ConnectionWrapper, so we
don't update the password for the already active connection, if it
changes, which defeats the purpose of this mechanism altogether.
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/de/bwlehrpool/bwlp_guac/AvailableClient.java | 15 | ||||
-rw-r--r-- | src/main/java/de/bwlehrpool/bwlp_guac/WrappedConnection.java | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/de/bwlehrpool/bwlp_guac/AvailableClient.java b/src/main/java/de/bwlehrpool/bwlp_guac/AvailableClient.java index 0318965..c886397 100644 --- a/src/main/java/de/bwlehrpool/bwlp_guac/AvailableClient.java +++ b/src/main/java/de/bwlehrpool/bwlp_guac/AvailableClient.java @@ -9,7 +9,7 @@ import org.slf4j.LoggerFactory; import de.bwlehrpool.bwlp_guac.JsonClient.State; -public class AvailableClient { +public class AvailableClient implements Cloneable { private static final Logger LOGGER = LoggerFactory.getLogger(AvailableClient.class); @@ -37,6 +37,10 @@ public class AvailableClient { this.clientip = source.clientip; update(source); } + + private AvailableClient(String clientip) { + this.clientip = clientip; + } /** * Update this client's state, resetting "in use" if appropriate. Ie, the @@ -154,5 +158,14 @@ public class AvailableClient { return this.connectionOk = false; } } + + @Override + public AvailableClient clone() { + AvailableClient c = new AvailableClient(this.clientip); + c.state = this.state; + c.inUseBy = this.inUseBy; + c.password = this.password; + return c; + } } diff --git a/src/main/java/de/bwlehrpool/bwlp_guac/WrappedConnection.java b/src/main/java/de/bwlehrpool/bwlp_guac/WrappedConnection.java index 616c20c..3d46e73 100644 --- a/src/main/java/de/bwlehrpool/bwlp_guac/WrappedConnection.java +++ b/src/main/java/de/bwlehrpool/bwlp_guac/WrappedConnection.java @@ -11,7 +11,7 @@ public class WrappedConnection extends SimpleConnection { public WrappedConnection(String name, AvailableClient ac) { super(name, name, makeConfig(ac)); - this.ac = ac; + this.ac = ac.clone(); setParentIdentifier(DEFAULT_ROOT_CONNECTION_GROUP); } |