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 | |
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.
-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); } |