mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
GUAC-1132: Associate tunnels with records, not sockets. Provide tunnel for connect().
This commit is contained in:
@@ -31,7 +31,7 @@ import org.glyptodon.guacamole.GuacamoleException;
|
||||
import org.glyptodon.guacamole.GuacamoleSecurityException;
|
||||
import org.glyptodon.guacamole.GuacamoleUnauthorizedException;
|
||||
import org.glyptodon.guacamole.io.GuacamoleReader;
|
||||
import org.glyptodon.guacamole.net.GuacamoleSocket;
|
||||
import org.glyptodon.guacamole.net.DelegatingGuacamoleTunnel;
|
||||
import org.glyptodon.guacamole.net.GuacamoleTunnel;
|
||||
import org.glyptodon.guacamole.net.auth.Connection;
|
||||
import org.glyptodon.guacamole.net.auth.ConnectionGroup;
|
||||
@@ -204,7 +204,7 @@ public class TunnelRequestService {
|
||||
info.getVideoMimetypes().addAll(video_mimetypes);
|
||||
|
||||
// Create connected socket from identifier
|
||||
GuacamoleSocket socket;
|
||||
GuacamoleTunnel tunnel;
|
||||
switch (id_type) {
|
||||
|
||||
// Connection identifiers
|
||||
@@ -221,8 +221,8 @@ public class TunnelRequestService {
|
||||
throw new GuacamoleSecurityException("Requested connection is not authorized.");
|
||||
}
|
||||
|
||||
// Connect socket
|
||||
socket = connection.connect(info);
|
||||
// Connect tunnel
|
||||
tunnel = connection.connect(info);
|
||||
logger.info("User \"{}\" successfully connected to \"{}\".", context.self().getIdentifier(), id);
|
||||
break;
|
||||
}
|
||||
@@ -241,8 +241,8 @@ public class TunnelRequestService {
|
||||
throw new GuacamoleSecurityException("Requested connection group is not authorized.");
|
||||
}
|
||||
|
||||
// Connect socket
|
||||
socket = group.connect(info);
|
||||
// Connect tunnel
|
||||
tunnel = group.connect(info);
|
||||
logger.info("User \"{}\" successfully connected to group \"{}\".", context.self().getIdentifier(), id);
|
||||
break;
|
||||
}
|
||||
@@ -253,8 +253,8 @@ public class TunnelRequestService {
|
||||
|
||||
}
|
||||
|
||||
// Associate socket with tunnel
|
||||
GuacamoleTunnel tunnel = new GuacamoleTunnel(socket) {
|
||||
// Track tunnel open/close
|
||||
GuacamoleTunnel monitoredTunnel = new DelegatingGuacamoleTunnel(tunnel) {
|
||||
|
||||
@Override
|
||||
public GuacamoleReader acquireReader() {
|
||||
@@ -308,13 +308,13 @@ public class TunnelRequestService {
|
||||
};
|
||||
|
||||
// Notify listeners about connection
|
||||
if (!notifyConnect(session, tunnel)) {
|
||||
if (!notifyConnect(session, monitoredTunnel)) {
|
||||
logger.info("Successful connection canceled by hook.");
|
||||
return null;
|
||||
}
|
||||
|
||||
session.addTunnel(tunnel);
|
||||
return tunnel;
|
||||
session.addTunnel(monitoredTunnel);
|
||||
return monitoredTunnel;
|
||||
|
||||
}
|
||||
|
||||
|
@@ -26,7 +26,7 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.glyptodon.guacamole.GuacamoleException;
|
||||
import org.glyptodon.guacamole.net.GuacamoleSocket;
|
||||
import org.glyptodon.guacamole.net.GuacamoleTunnel;
|
||||
import org.glyptodon.guacamole.net.auth.Connection;
|
||||
import org.glyptodon.guacamole.net.auth.ConnectionRecord;
|
||||
import org.glyptodon.guacamole.protocol.GuacamoleClientInformation;
|
||||
@@ -116,7 +116,7 @@ public class APIConnectionWrapper implements Connection {
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuacamoleSocket connect(GuacamoleClientInformation info) throws GuacamoleException {
|
||||
public GuacamoleTunnel connect(GuacamoleClientInformation info) throws GuacamoleException {
|
||||
throw new UnsupportedOperationException("Operation not supported.");
|
||||
}
|
||||
|
||||
|
@@ -24,7 +24,7 @@ package org.glyptodon.guacamole.net.basic.rest.connectiongroup;
|
||||
|
||||
import java.util.Set;
|
||||
import org.glyptodon.guacamole.GuacamoleException;
|
||||
import org.glyptodon.guacamole.net.GuacamoleSocket;
|
||||
import org.glyptodon.guacamole.net.GuacamoleTunnel;
|
||||
import org.glyptodon.guacamole.net.auth.ConnectionGroup;
|
||||
import org.glyptodon.guacamole.protocol.GuacamoleClientInformation;
|
||||
|
||||
@@ -106,7 +106,7 @@ public class APIConnectionGroupWrapper implements ConnectionGroup {
|
||||
}
|
||||
|
||||
@Override
|
||||
public GuacamoleSocket connect(GuacamoleClientInformation info) throws GuacamoleException {
|
||||
public GuacamoleTunnel connect(GuacamoleClientInformation info) throws GuacamoleException {
|
||||
throw new UnsupportedOperationException("Operation not supported.");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user