GUACAMOLE-5: Throw clean "resource not found" if the active connection of a tunnel cannot be determined.

This commit is contained in:
Michael Jumper
2016-07-25 14:10:54 -07:00
parent b0eef60e15
commit a5af6c00d2

View File

@@ -30,6 +30,7 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam; import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.GuacamoleResourceNotFoundException;
import org.apache.guacamole.net.auth.ActiveConnection; import org.apache.guacamole.net.auth.ActiveConnection;
import org.apache.guacamole.net.auth.UserContext; import org.apache.guacamole.net.auth.UserContext;
import org.apache.guacamole.rest.activeconnection.APIActiveConnection; import org.apache.guacamole.rest.activeconnection.APIActiveConnection;
@@ -96,10 +97,14 @@ public class TunnelResource {
// Pull the UserContext from the tunnel // Pull the UserContext from the tunnel
UserContext userContext = tunnel.getUserContext(); UserContext userContext = tunnel.getUserContext();
// Fail if the active connection cannot be found
ActiveConnection activeConnection = tunnel.getActiveConnection();
if (activeConnection == null)
throw new GuacamoleResourceNotFoundException("No readable active connection for tunnel.");
// Return the associated ActiveConnection as a resource // Return the associated ActiveConnection as a resource
return activeConnectionResourceFactory.create(userContext, return activeConnectionResourceFactory.create(userContext,
userContext.getActiveConnectionDirectory(), userContext.getActiveConnectionDirectory(), activeConnection);
tunnel.getActiveConnection());
} }