mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 13:41:21 +00:00
Migrate to generic Directory interface.
This commit is contained in:
@@ -21,7 +21,6 @@ package net.sourceforge.guacamole.net.basic;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -32,7 +31,7 @@ import net.sourceforge.guacamole.net.GuacamoleSocket;
|
||||
import net.sourceforge.guacamole.net.GuacamoleTunnel;
|
||||
import net.sourceforge.guacamole.net.InetGuacamoleSocket;
|
||||
import net.sourceforge.guacamole.net.auth.Credentials;
|
||||
import net.sourceforge.guacamole.net.auth.GuacamoleConfigurationDirectory;
|
||||
import net.sourceforge.guacamole.net.auth.Directory;
|
||||
import net.sourceforge.guacamole.net.auth.UserContext;
|
||||
import net.sourceforge.guacamole.net.basic.event.SessionListenerCollection;
|
||||
import net.sourceforge.guacamole.net.event.TunnelCloseEvent;
|
||||
@@ -175,19 +174,15 @@ public class BasicGuacamoleTunnelServlet extends AuthenticatingHttpServlet {
|
||||
UserContext context = getUserContext(httpSession);
|
||||
|
||||
// Get configuration directory
|
||||
GuacamoleConfigurationDirectory directory =
|
||||
Directory<String, GuacamoleConfiguration> directory =
|
||||
context.getGuacamoleConfigurationDirectory();
|
||||
|
||||
// Attempt to get configurations from directory
|
||||
Map<String, GuacamoleConfiguration> configs =
|
||||
directory.getConfigurations();
|
||||
|
||||
// If no configs/credentials in session, not authorized
|
||||
if (credentials == null || configs == null)
|
||||
if (credentials == null)
|
||||
throw new GuacamoleSecurityException("Cannot connect - user not logged in.");
|
||||
|
||||
// Get authorized config
|
||||
GuacamoleConfiguration config = configs.get(id);
|
||||
GuacamoleConfiguration config = directory.get(id);
|
||||
if (config == null) {
|
||||
logger.warn("Configuration id={} not found.", id);
|
||||
throw new GuacamoleSecurityException("Requested configuration is not authorized.");
|
||||
|
@@ -19,8 +19,6 @@ package net.sourceforge.guacamole.net.basic;
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -29,7 +27,7 @@ import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
import net.sourceforge.guacamole.GuacamoleException;
|
||||
import net.sourceforge.guacamole.GuacamoleSecurityException;
|
||||
import net.sourceforge.guacamole.net.auth.GuacamoleConfigurationDirectory;
|
||||
import net.sourceforge.guacamole.net.auth.Directory;
|
||||
import net.sourceforge.guacamole.net.auth.User;
|
||||
import net.sourceforge.guacamole.net.auth.UserContext;
|
||||
import net.sourceforge.guacamole.net.auth.permission.GuacamoleConfigurationDirectoryPermission;
|
||||
@@ -123,15 +121,11 @@ public class ConfigurationList extends AuthenticatingHttpServlet {
|
||||
response.setHeader("Content-Type", "text/xml");
|
||||
|
||||
// Attempt to get configurations
|
||||
Map<String, GuacamoleConfiguration> configs;
|
||||
Directory<String, GuacamoleConfiguration> directory;
|
||||
try {
|
||||
|
||||
// Get configuration directory
|
||||
GuacamoleConfigurationDirectory directory =
|
||||
context.getGuacamoleConfigurationDirectory();
|
||||
|
||||
// Get configurations
|
||||
configs = directory.getConfigurations();
|
||||
directory = context.getGuacamoleConfigurationDirectory();
|
||||
|
||||
}
|
||||
catch (GuacamoleException e) {
|
||||
@@ -156,29 +150,29 @@ public class ConfigurationList extends AuthenticatingHttpServlet {
|
||||
xml.writeAttribute("create", "yes");
|
||||
|
||||
// For each entry, write corresponding config element
|
||||
for (Entry<String, GuacamoleConfiguration> entry : configs.entrySet()) {
|
||||
for (String identifier : directory.getIdentifiers()) {
|
||||
|
||||
// Get config
|
||||
GuacamoleConfiguration config = entry.getValue();
|
||||
GuacamoleConfiguration config = directory.get(identifier);
|
||||
|
||||
// Write config
|
||||
xml.writeEmptyElement("config");
|
||||
xml.writeAttribute("id", entry.getKey());
|
||||
xml.writeAttribute("id", identifier);
|
||||
xml.writeAttribute("protocol", config.getProtocol());
|
||||
|
||||
// Save update permission attribute
|
||||
if (hasConfigPermission(self, ObjectPermission.Type.UPDATE,
|
||||
entry.getKey()))
|
||||
identifier))
|
||||
xml.writeAttribute("update", "yes");
|
||||
|
||||
// Save admin permission attribute
|
||||
if (hasConfigPermission(self, ObjectPermission.Type.ADMINISTER,
|
||||
entry.getKey()))
|
||||
identifier))
|
||||
xml.writeAttribute("admin", "yes");
|
||||
|
||||
// Save delete permission attribute
|
||||
if (hasConfigPermission(self, ObjectPermission.Type.DELETE,
|
||||
entry.getKey()))
|
||||
identifier))
|
||||
xml.writeAttribute("delete", "yes");
|
||||
|
||||
}
|
||||
|
@@ -27,9 +27,9 @@ import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
import net.sourceforge.guacamole.GuacamoleException;
|
||||
import net.sourceforge.guacamole.GuacamoleSecurityException;
|
||||
import net.sourceforge.guacamole.net.auth.Directory;
|
||||
import net.sourceforge.guacamole.net.auth.User;
|
||||
import net.sourceforge.guacamole.net.auth.UserContext;
|
||||
import net.sourceforge.guacamole.net.auth.UserDirectory;
|
||||
import net.sourceforge.guacamole.net.auth.permission.GuacamoleConfigurationDirectoryPermission;
|
||||
import net.sourceforge.guacamole.net.auth.permission.GuacamoleConfigurationPermission;
|
||||
import net.sourceforge.guacamole.net.auth.permission.ObjectPermission;
|
||||
@@ -109,10 +109,10 @@ public class PermissionList extends AuthenticatingHttpServlet {
|
||||
throw new ServletException("No user specified.");
|
||||
|
||||
// Get user directory
|
||||
UserDirectory users = context.getUserDirectory();
|
||||
Directory<String, User> users = context.getUserDirectory();
|
||||
|
||||
// Get specific user
|
||||
User user = users.getUser(username);
|
||||
User user = users.get(username);
|
||||
if (user == null)
|
||||
throw new GuacamoleSecurityException("No such user.");
|
||||
|
||||
|
@@ -28,9 +28,9 @@ import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
import net.sourceforge.guacamole.GuacamoleException;
|
||||
import net.sourceforge.guacamole.GuacamoleSecurityException;
|
||||
import net.sourceforge.guacamole.net.auth.Directory;
|
||||
import net.sourceforge.guacamole.net.auth.User;
|
||||
import net.sourceforge.guacamole.net.auth.UserContext;
|
||||
import net.sourceforge.guacamole.net.auth.UserDirectory;
|
||||
import net.sourceforge.guacamole.net.auth.permission.ObjectPermission;
|
||||
import net.sourceforge.guacamole.net.auth.permission.Permission;
|
||||
import net.sourceforge.guacamole.net.auth.permission.SystemPermission;
|
||||
@@ -119,10 +119,10 @@ public class UserList extends AuthenticatingHttpServlet {
|
||||
try {
|
||||
|
||||
// Get user directory
|
||||
UserDirectory directory = context.getUserDirectory();
|
||||
Directory<String, User> directory = context.getUserDirectory();
|
||||
|
||||
// Get users
|
||||
Set<User> users = directory.getUsers();
|
||||
Set<String> users = directory.getIdentifiers();
|
||||
|
||||
// Get self
|
||||
User self = context.self();
|
||||
@@ -139,8 +139,11 @@ public class UserList extends AuthenticatingHttpServlet {
|
||||
xml.writeAttribute("create", "yes");
|
||||
|
||||
// For each entry, write corresponding user element
|
||||
for (User user : users) {
|
||||
for (String username : users) {
|
||||
|
||||
// Get user
|
||||
User user = directory.get(username);
|
||||
|
||||
// Write user
|
||||
xml.writeEmptyElement("user");
|
||||
xml.writeAttribute("name", user.getUsername());
|
||||
|
Reference in New Issue
Block a user