You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@guacamole.apache.org by mike-jumper <gi...@git.apache.org> on 2016/07/25 00:21:35 UTC
[GitHub] incubator-guacamole-client pull request #33: GUACAMOLE-5: Invalidate share k...
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 <mj...@apache.org>
Date: 2016-07-22T23:49:05Z
GUACAMOLE-5: Store share key within SharedConnectionDefinition.
commit a71be958683de42012280173f7044f40d798fe62
Author: Michael Jumper <mj...@apache.org>
Date: 2016-07-22T23:53:40Z
GUACAMOLE-5: Store SharedConnectionDefinition directly, rather than passing around its contents.
commit 3512e8319aef09a4797d529679c3c7fc76c47e15
Author: Michael Jumper <mj...@apache.org>
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 <mj...@apache.org>
Date: 2016-07-24T23:02:12Z
GUACAMOLE-5: Implement thread-safe automatic cleanup of a group of shared objects.
commit 4a51a55c092b2ccf7f31bb5e0dff823526b4344d
Author: Michael Jumper <mj...@apache.org>
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] incubator-guacamole-client pull request #33: GUACAMOLE-5: Invalidate share k...
Posted by mike-jumper <gi...@git.apache.org>.
Github user mike-jumper commented on a diff in the pull request:
https://github.com/apache/incubator-guacamole-client/pull/33#discussion_r72125018
--- Diff: extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java ---
@@ -681,13 +696,22 @@ public GuacamoleTunnel getGuacamoleTunnel(AuthenticatedUser user,
@Override
@Transactional
public GuacamoleTunnel getGuacamoleTunnel(SharedConnectionUser user,
- TrackedActiveConnection activeConnection,
- ModeledSharingProfile sharingProfile,
+ SharedConnectionDefinition definition,
GuacamoleClientInformation info)
throws GuacamoleException {
- // Connect to shared connection
- return assignGuacamoleTunnel(new ActiveConnectionRecord(user, activeConnection, sharingProfile), info);
+ // Create a connection record which described the shared connection
--- End diff --
OK - fixed.
---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] incubator-guacamole-client pull request #33: GUACAMOLE-5: Invalidate share k...
Posted by jmuehlner <gi...@git.apache.org>.
Github user jmuehlner commented on a diff in the pull request:
https://github.com/apache/incubator-guacamole-client/pull/33#discussion_r72099720
--- Diff: extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java ---
@@ -681,13 +696,22 @@ public GuacamoleTunnel getGuacamoleTunnel(AuthenticatedUser user,
@Override
@Transactional
public GuacamoleTunnel getGuacamoleTunnel(SharedConnectionUser user,
- TrackedActiveConnection activeConnection,
- ModeledSharingProfile sharingProfile,
+ SharedConnectionDefinition definition,
GuacamoleClientInformation info)
throws GuacamoleException {
- // Connect to shared connection
- return assignGuacamoleTunnel(new ActiveConnectionRecord(user, activeConnection, sharingProfile), info);
+ // Create a connection record which described the shared connection
--- End diff --
"described" - past tense?
---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---
[GitHub] incubator-guacamole-client pull request #33: GUACAMOLE-5: Invalidate share k...
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:
https://github.com/apache/incubator-guacamole-client/pull/33
---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---