GitHub user mike-jumper opened a pull request:
https://github.com/apache/incubator-guacamole-client/pull/33
GUACAMOLE-5: Invalidate share keys and close associated tunnels when the
shared connection is closed
This change alters the behavior of connections shared via the JDBC auth
backend such that:
1. The share keys generated for an active connection are invalidated once
that connection closes.
2. Share keys created for a closed connection are immediately invalidated.
3. The tunnels created by users of a share key are closed once the share
key is invalidated.
4. Tunnels created by users of a share key are immediately closed if the
share key is already invalid.
From the user's perspective, the effect of all this is that shared
connections automatically close when the original connection is closed, and
cannot be reestablished. Reconnecting after a disconnect is only possible for a
shared connection if the original connection is still running.
It is particularly important that this is guaranteed regardless of the
timing of concurrent share/join attempts, as only the original connection is
affected by concurrency limits. If shared connections can somehow outlive the
original connection due to race conditions, then concurrency limits may be
violated. The `SharedObjectManager` class was written to provide such strict
guarantees.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/mike-jumper/incubator-guacamole-client
close-shared-connections
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-guacamole-client/pull/33.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #33
----
commit f8e7c94f9f743fa39d22a600a67a23ace8c43d15
Author: Michael Jumper <[email protected]>
Date: 2016-07-22T23:49:05Z
GUACAMOLE-5: Store share key within SharedConnectionDefinition.
commit a71be958683de42012280173f7044f40d798fe62
Author: Michael Jumper <[email protected]>
Date: 2016-07-22T23:53:40Z
GUACAMOLE-5: Store SharedConnectionDefinition directly, rather than passing
around its contents.
commit 3512e8319aef09a4797d529679c3c7fc76c47e15
Author: Michael Jumper <[email protected]>
Date: 2016-07-24T21:34:22Z
GUACAMOLE-5: Use ActiveConnectionRecord as the basis for sharing.
TrackedActiveConnection is really only meant for interchange via the
ActiveConnection Directory.
commit 2d0d7709a74dc226f0469489481c1a1838435779
Author: Michael Jumper <[email protected]>
Date: 2016-07-24T23:02:12Z
GUACAMOLE-5: Implement thread-safe automatic cleanup of a group of shared
objects.
commit 4a51a55c092b2ccf7f31bb5e0dff823526b4344d
Author: Michael Jumper <[email protected]>
Date: 2016-07-24T23:53:10Z
GUACAMOLE-5: Automatically clean up share keys and any associated tunnels
when the connection being shared is closed.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---