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