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.
---

Reply via email to