diff --git a/guacamole-auth-uds/.gitignore b/guacamole-auth-uds/.gitignore deleted file mode 100644 index acb95da7e..000000000 --- a/guacamole-auth-uds/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -# Backup files -*~ - -# Generated files -target/ - -# IDE-specific configuration -nb-configuration.xml -.classpath -.project - diff --git a/guacamole-auth-uds/pom.xml b/guacamole-auth-uds/pom.xml deleted file mode 100644 index 66c51e760..000000000 --- a/guacamole-auth-uds/pom.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - 4.0.0 - org.openuds.server - guacamole-auth-uds - jar - 4.0.0 - UDS Integration Extension for Apache Guacamole - https://github.com/VirtualCable/openuds - - - UTF-8 - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 11 - 11 - - -Xlint:all - -Werror - - true - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - unpack-dependencies - prepare-package - - unpack-dependencies - - - runtime - ${project.build.directory}/classes - - - - - - - - - - - - javax.servlet - servlet-api - provided - 2.5 - - - - - javax.ws.rs - jsr311-api - provided - 1.1.1 - - - - - org.apache.guacamole - guacamole-ext - 1.5.1 - provided - - - - - com.google.inject - guice - 5.1.0 - - - - - diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSAuthenticatedUser.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSAuthenticatedUser.java deleted file mode 100644 index ccdb94a32..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSAuthenticatedUser.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2020 Virtual Cable S.L.U. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L.U. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole; - -import org.apache.guacamole.net.auth.AbstractAuthenticatedUser; -import org.apache.guacamole.net.auth.AuthenticatedUser; -import org.apache.guacamole.net.auth.AuthenticationProvider; -import org.apache.guacamole.net.auth.Credentials; -import org.openuds.guacamole.connection.UDSConnection; - -/** - * A Guacamole user that was authenticated by an external UDS service. - */ -public class UDSAuthenticatedUser extends AbstractAuthenticatedUser { - - /** - * The AuthenticationProvider that authenticated this user. - */ - private final AuthenticationProvider authProvider; - - /** - * The credentials provided by this user when they authenticated. - */ - private final Credentials credentials; - - /** - * The single connection that this user should be authorized to access. - */ - private final UDSConnection connection; - - /** - * Creates a new UDSAuthenticatedUser representing a Guacamole user that - * was authenticated by an external UDS service. - * - * @param authProvider - * The AuthenticationProvider that authenticated the user. - * - * @param credentials - * The credentials provided by the user when they authenticated. - * - * @param connection - * The single connection that the user should be authorized to access. - */ - public UDSAuthenticatedUser(AuthenticationProvider authProvider, - Credentials credentials, UDSConnection connection) { - this.authProvider = authProvider; - this.credentials = credentials; - this.connection = connection; - } - - @Override - public String getIdentifier() { - return AuthenticatedUser.ANONYMOUS_IDENTIFIER; - } - - @Override - public AuthenticationProvider getAuthenticationProvider() { - return authProvider; - } - - @Override - public Credentials getCredentials() { - return credentials; - } - - /** - * Returns the single connection that this user should be authorized to - * access. - * - * @return - * The single connection that this user should be authorized to access. - */ - public UDSConnection getConnection() { - return connection; - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSAuthenticationProvider.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSAuthenticationProvider.java deleted file mode 100644 index a91d31dd1..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSAuthenticationProvider.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2020 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import java.util.Collections; -import javax.servlet.http.HttpServletRequest; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.form.Field; -import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; -import org.apache.guacamole.net.auth.AuthenticatedUser; -import org.apache.guacamole.net.auth.Credentials; -import org.apache.guacamole.net.auth.UserContext; -import org.apache.guacamole.net.auth.credentials.CredentialsInfo; -import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; -import org.openuds.guacamole.connection.ConnectionService; -import org.openuds.guacamole.connection.UDSConnection; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * AuthenticationProvider implementation which authenticates users that are - * confirmed as authorized by an external UDS service. - */ -public class UDSAuthenticationProvider extends AbstractAuthenticationProvider { - - /** - * The name of the query parameter that should contain the data sent to - * the UDS service for authentication. - */ - private static final String DATA_PARAMETER_NAME = "data"; - - /** - * The form of credentials accepted by this extension. - */ - private static final CredentialsInfo UDS_CREDENTIALS = - new CredentialsInfo(Collections.singletonList( - new Field(DATA_PARAMETER_NAME, Field.Type.QUERY_PARAMETER) - )); - - /** - * Logger for this class. - */ - private final Logger logger = LoggerFactory.getLogger(UDSAuthenticationProvider.class); - - /** - * Service for retrieving connection configuration information from the - * UDS service. - */ - private final ConnectionService connectionService; - - /** - * Creates a new UDSAuthenticationProvider which authenticates users - * against an external UDS service. - * - * @throws GuacamoleException - * If an error prevents guacamole.properties from being read. - */ - public UDSAuthenticationProvider() throws GuacamoleException { - - // Create an injector with OpenUDS- and Guacamole-specific services - // properly bound - Injector injector = Guice.createInjector( - new UDSModule() - ); - - // Pull instance of connection service from injector - connectionService = injector.getInstance(ConnectionService.class); - - } - - @Override - public String getIdentifier() { - return "uds"; - } - - @Override - public AuthenticatedUser authenticateUser(Credentials credentials) - throws GuacamoleException { - - HttpServletRequest request = credentials.getRequest(); - - // Pull OpenUDS-specific "data" parameter - String data = request.getParameter(DATA_PARAMETER_NAME); - if (data == null || data.isEmpty()) { - logger.debug("UDS connection data was not provided. No connection retrieval from UDS will be performed."); - throw new GuacamoleInvalidCredentialsException("Connection data was not provided.", UDS_CREDENTIALS); - } - - try { - - // Retrieve connection information using provided data - UDSConnection connection = new UDSConnection(connectionService, data); - - // Report successful authentication as a temporary, anonymous user, - // storing the retrieved connection configuration data for future use - return new UDSAuthenticatedUser(this, credentials, connection); - - } - catch (GuacamoleException e) { - logger.info("Provided connection data could not be validated with UDS: {}", e.getMessage()); - logger.debug("Validation of UDS connection data failed.", e); - throw new GuacamoleInvalidCredentialsException("Connection data was rejected by UDS.", e, UDS_CREDENTIALS); - } - - } - - @Override - public UserContext getUserContext(AuthenticatedUser authenticatedUser) - throws GuacamoleException { - - // Provide data only for users authenticated by this extension - if (!(authenticatedUser instanceof UDSAuthenticatedUser)) - return null; - - // Expose a single connection (derived from the "data" parameter - // provided during authentication) - return new UDSUserContext(this, (UDSAuthenticatedUser) authenticatedUser); - - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSModule.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSModule.java deleted file mode 100644 index 68fdd8d87..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSModule.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2015 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole; - -import com.google.inject.AbstractModule; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.environment.Environment; -import org.apache.guacamole.environment.LocalEnvironment; -import org.openuds.guacamole.config.ConfigurationService; -import org.openuds.guacamole.connection.ConnectionService; - -/** - * Guice module which binds classes required by the OpenUDS integration of - * Apache Guacamole. - */ -public class UDSModule extends AbstractModule { - - /** - * The Guacamole server environment. - */ - private final Environment environment; - - /** - * Creates a new UDSModule which binds classes required by the OpenUDS - * integration of Apache Guacamole, including an implementation of the - * Guacamole server {@link Environment}. - * - * @throws GuacamoleException - * If the guacamole.properties file cannot be read. - */ - public UDSModule() throws GuacamoleException { - this.environment = LocalEnvironment.getInstance(); - } - - @Override - protected void configure() { - - // Bind instance of Guacamole server environment - bind(Environment.class).toInstance(environment); - - // Bind UDS-specific services - bind(ConfigurationService.class); - bind(ConnectionService.class); - - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSUserContext.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSUserContext.java deleted file mode 100644 index bfbe2c0f8..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/UDSUserContext.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2020 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole; - -import java.util.Collections; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.net.auth.AbstractUserContext; -import org.apache.guacamole.net.auth.AuthenticationProvider; -import org.apache.guacamole.net.auth.Connection; -import org.apache.guacamole.net.auth.Directory; -import org.apache.guacamole.net.auth.User; -import org.apache.guacamole.net.auth.permission.ObjectPermissionSet; -import org.apache.guacamole.net.auth.simple.SimpleDirectory; -import org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet; -import org.apache.guacamole.net.auth.simple.SimpleUser; -import org.openuds.guacamole.connection.UDSConnection; - -/** - * UserContext implementation which exposes access only to a single - * UDSConnection. The details of the connection exposed are determined by the - * UDS-specific data associated with the user. - */ -public class UDSUserContext extends AbstractUserContext { - - /** - * The unique identifier of the root connection group. - */ - public static final String ROOT_CONNECTION_GROUP = DEFAULT_ROOT_CONNECTION_GROUP; - - /** - * The AuthenticationProvider that produced this UserContext. - */ - private final AuthenticationProvider authProvider; - - /** - * The AuthenticatedUser for whom this UserContext was created. - */ - private final UDSAuthenticatedUser authenticatedUser; - - /** - * Creates a new UDSUserContext that is associated with the given - * AuthenticationProvider and uses the UDS-specific data of the given - * UDSAuthenticatedUser to determine the connection that user can access. - * - * @param authProvider - * The AuthenticationProvider that is producing the UserContext. - * - * @param authenticatedUser - * The AuthenticatedUser for whom this UserContext is being created. - */ - public UDSUserContext(AuthenticationProvider authProvider, - UDSAuthenticatedUser authenticatedUser) { - this.authProvider = authProvider; - this.authenticatedUser = authenticatedUser; - } - - @Override - public User self() { - return new SimpleUser() { - - @Override - public ObjectPermissionSet getConnectionGroupPermissions() throws GuacamoleException { - return new SimpleObjectPermissionSet(Collections.singleton(DEFAULT_ROOT_CONNECTION_GROUP)); - } - - @Override - public ObjectPermissionSet getConnectionPermissions() throws GuacamoleException { - return new SimpleObjectPermissionSet(Collections.singleton(UDSConnection.IDENTIFIER)); - } - - }; - } - - @Override - public AuthenticationProvider getAuthenticationProvider() { - return authProvider; - } - - @Override - public Directory getConnectionDirectory() throws GuacamoleException { - return new SimpleDirectory<>(authenticatedUser.getConnection()); - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/config/ConfigurationService.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/config/ConfigurationService.java deleted file mode 100644 index e3e8e252e..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/config/ConfigurationService.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2015 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole.config; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.net.URI; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.environment.Environment; -import org.apache.guacamole.properties.URIGuacamoleProperty; - -/** - * Service that provides access to OpenUDS-specific configuration information - * stored within guacamole.properties. - */ -@Singleton -public class ConfigurationService { - - /** - * The name of the property within guacamole.properties which defines the - * base URL of the service providing connection configuration information. - */ - private static final URIGuacamoleProperty UDS_BASE_URL_PROPERTY = new URIGuacamoleProperty() { - - @Override - public String getName() { - return "uds-base-url"; - } - - }; - - /** - * The Guacamole server environment. - */ - @Inject - private Environment environment; - - /** - * Returns the base URI of the OpenUDS service. All services providing data - * to this Guacamole integration are hosted beneath this base URI. - * - * @return - * The base URI of the OpenUDS service. - * - * @throws GuacamoleException - * If the base URI of the OpenUDS service is not defined because the - * tunnel.properties file could not be parsed when the web application - * started. - */ - public URI getUDSBaseURI() throws GuacamoleException { - return environment.getRequiredProperty(UDS_BASE_URL_PROPERTY); - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/config/package-info.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/config/package-info.java deleted file mode 100644 index 89f7aa079..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/config/package-info.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2015 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * Classes used to retrieve OpenUDS-specific configuration information. - */ -package org.openuds.guacamole.config; diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/ConnectionService.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/ConnectionService.java deleted file mode 100644 index e22146496..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/ConnectionService.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Copyright (c) 2015 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole.connection; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URI; -import java.net.URLConnection; -import java.util.HashMap; -import java.util.Map; -import javax.ws.rs.core.UriBuilder; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.GuacamoleServerException; -import org.apache.guacamole.protocol.GuacamoleConfiguration; -import org.openuds.guacamole.config.ConfigurationService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Service which communicates with the remote OpenUDS connection service, - * providing access to the underlying connection configuration. - */ -@Singleton -public class ConnectionService { - - /** - * Logger for this class. - */ - private final Logger logger = LoggerFactory.getLogger(ConnectionService.class); - - /** - * The name of the parameter returned by the OpenUDS connection - * configuration service which will contain the protocol that Guacamole - * should use to initiate the remote desktop connection. - */ - private static final String PROTOCOL_PARAMETER = "protocol"; - - /** - * Service for retrieving configuration information. - */ - @Inject - private ConfigurationService configService; - - /** - * Makes an HTTP GET request to the OpenUDS service running at the given - * URI, parsing the response into connection configuration data. The - * response MUST be simple text, one line per connection parameter, with the - * name of the connection parameter separated from the corresponding value - * by a tab character. If the OpenUDS service encounters an error, it is - * expected to return the single word "ERROR" on one line. Lines which do - * not match these expectations will be skipped. - * - * @param uri - * The URI of the OpenUDS service to which the HTTP GET request should - * be made. - * - * @return - * A map of all parameter name/value pairs returned by the OpenUDS - * service. - * - * @throws GuacamoleException - * If the OpenUDS service returns an error, or the response from the - * service cannot be read. - */ - private Map readConnectionConfiguration(URI uri) - throws GuacamoleException { - - BufferedReader response; - - // Connect to OpenUDS - try { - URLConnection connection = uri.toURL().openConnection(); - response = new BufferedReader(new InputStreamReader(connection.getInputStream())); - } - catch (IOException e) { - throw new GuacamoleServerException("Unable to open connection to OpenUDS service.", e); - } - - Map parameters = new HashMap(); - - // Read and parse each line of the response - try { - - String inputLine; - while ((inputLine = response.readLine()) != null) { - - // Abort upon error - if (inputLine.equals("ERROR")) - throw new GuacamoleServerException("OpenUDS service returned an error."); - - // Determine separation between each line's key and value - int tab = inputLine.indexOf('\t'); - if (tab == -1) - continue; - - // Add key/value pair from either side of the tab - parameters.put( - inputLine.substring(0, tab), - inputLine.substring(tab + 1) - ); - - } - - } - - // Rethrow any error which occurs during reading - catch (IOException e) { - throw new GuacamoleServerException("Failed to read response from OpenUDS service.", e); - } - - // Always close the stream - finally { - - try { - response.close(); - } - catch (IOException e) { - logger.warn("Closure of connection to OpenUDS failed. Resource may leak.", e); - } - - } - - // Parameters have been successfully parsed - return parameters; - - } - - /** - * Queries OpenUDS for the connection configuration for the connection - * associated with the given data. This data is an opaque value provided - * via the "data" parameter to the Guacamole tunnel. - * - * @param data - * The OpenUDS-specific data which defines the connection whose - * configuration should be retrieved. - * - * @return - * The configuration of the connection associated with the provided - * OpenUDS-specific data. - * - * @throws GuacamoleException - * If the connection configuration could not be retrieved from OpenUDS, - * of the response from OpenUDS was missing required information. - */ - public GuacamoleConfiguration getConnectionConfiguration(String data) - throws GuacamoleException { - - logger.debug("Retrieving/validating connection configuration using data from \"{}\"...", data); - - // Build URI of remote service from the base URI and given data - URI serviceURI = UriBuilder.fromUri(configService.getUDSBaseURI()) - .path(data) - .build(); - - // Pull connection configuration from remote service - Map params = readConnectionConfiguration(serviceURI); - - // Pull the protocol from the parameters - String protocol = params.remove(PROTOCOL_PARAMETER); - if (protocol == null) - throw new GuacamoleServerException("Protocol missing from OpenUDS response."); - - // Create our configuration - GuacamoleConfiguration config = new GuacamoleConfiguration(); - config.setProtocol(protocol); - config.setParameters(params); - - return config; - - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/UDSConnection.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/UDSConnection.java deleted file mode 100644 index cb563356b..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/UDSConnection.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (c) 2020 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package org.openuds.guacamole.connection; - -import java.util.Map; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.net.GuacamoleTunnel; -import org.apache.guacamole.net.auth.simple.SimpleConnection; -import org.apache.guacamole.protocol.GuacamoleClientInformation; -import org.openuds.guacamole.UDSUserContext; - -/** - * Connection implementation which uses provided data to communicate with a - * remote UDS service to dynamically authorize access to a remote desktop. The - * provided data is validated when the UDSConnection is created and upon each - * connection attempt. - */ -public class UDSConnection extends SimpleConnection { - - /** - * The name of the single connection that should be exposed to any user - * that authenticates via UDS. - */ - public static final String NAME = "UDS"; - - /** - * The unique identifier of the single connection that should be exposed to - * any user that authenticates via UDS. - */ - public static final String IDENTIFIER = NAME; - - /** - * Service for retrieving configuration information. - */ - private final ConnectionService connectionService; - - /** - * The UDS-specific data that should be provided to the remote UDS service - * to re-authenticate the user and determine the details of the connection - * they are authorized to access. - */ - private final String data; - - /** - * Creates a new UDSConnection which exposes access to a remote desktop - * that is dynamically authorized by exchanging arbitrary UDS-specific data - * with a remote service. If the data is accepted by the UDS service, the - * data will also be re-validated upon each connection attempt. - * - * @param connectionService - * The service that should be used to validate the provided UDS data - * and retrieve corresponding connection configuration information. - * - * @param data - * The UDS-specific data that should be provided to the remote UDS - * service. - * - * @throws GuacamoleException - * If the provided data is no longer valid or the UDS service does not - * respond successfully. - */ - public UDSConnection(ConnectionService connectionService, String data) - throws GuacamoleException { - - // Validate provided data - super.setConfiguration(connectionService.getConnectionConfiguration(data)); - - this.connectionService = connectionService; - this.data = data; - - } - - @Override - public String getParentIdentifier() { - return UDSUserContext.ROOT_CONNECTION_GROUP; - } - - @Override - public void setParentIdentifier(String parentIdentifier) { - throw new UnsupportedOperationException("UDSConnection is read-only."); - } - - @Override - public String getName() { - return NAME; - } - - @Override - public void setName(String name) { - throw new UnsupportedOperationException("UDSConnection is read-only."); - } - - @Override - public String getIdentifier() { - return IDENTIFIER; - } - - @Override - public void setIdentifier(String identifier) { - throw new UnsupportedOperationException("UDSConnection is read-only."); - } - - @Override - public GuacamoleTunnel connect(GuacamoleClientInformation info, - Map tokens) throws GuacamoleException { - - // Re-validate provided data (do not allow connections if data is no - // longer valid) - super.setConfiguration(connectionService.getConnectionConfiguration(data)); - - // Connect with configuration produced from data - return super.connect(info, tokens); - - } - -} diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/package-info.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/package-info.java deleted file mode 100644 index 6996f3e73..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/connection/package-info.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2015 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * Classes used to communicate with OpenUDS' connection configuration web - * service. - */ -package org.openuds.guacamole.connection; diff --git a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/package-info.java b/guacamole-auth-uds/src/main/java/org/openuds/guacamole/package-info.java deleted file mode 100644 index 80e6395af..000000000 --- a/guacamole-auth-uds/src/main/java/org/openuds/guacamole/package-info.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2015 Virtual Cable S.L. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of Virtual Cable S.L. nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * Classes associated with the OpenUDS integration of Apache Guacamole. - */ -package org.openuds.guacamole; diff --git a/guacamole-auth-uds/src/main/resources/guac-manifest.json b/guacamole-auth-uds/src/main/resources/guac-manifest.json deleted file mode 100644 index 2edf2db18..000000000 --- a/guacamole-auth-uds/src/main/resources/guac-manifest.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - - "guacamoleVersion" : "1.2.0", - - "name" : "UDS Integration Extension for Apache Guacamole", - "namespace" : "uds", - - "authProviders" : [ - "org.openuds.guacamole.UDSAuthenticationProvider" - ], - - "translations" : [ - "translations/en.json" - ] - -} diff --git a/guacamole-auth-uds/src/main/resources/translations/en.json b/guacamole-auth-uds/src/main/resources/translations/en.json deleted file mode 100644 index 2f77a9ca4..000000000 --- a/guacamole-auth-uds/src/main/resources/translations/en.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - - "DATA_SOURCE_UDS" : { - "NAME" : "UDS" - } - -} diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-back.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-back.png deleted file mode 100644 index 6435f4a73..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-back.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-close.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-close.png deleted file mode 100644 index 5ac7edb2d..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-close.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-config.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-config.png deleted file mode 100644 index 5c4700b04..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-config.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-delete.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-delete.png deleted file mode 100644 index 925e95831..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-delete.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-first-page.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-first-page.png deleted file mode 100644 index 86c7a97cc..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-first-page.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-group-add.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-group-add.png deleted file mode 100644 index be9b63014..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-group-add.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-last-page.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-last-page.png deleted file mode 100644 index b03932c82..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-last-page.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-logout.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-logout.png deleted file mode 100644 index 579301441..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-logout.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-monitor-add.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-monitor-add.png deleted file mode 100644 index 2ed062acd..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-monitor-add.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-next-page.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-next-page.png deleted file mode 100644 index d4022a452..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-next-page.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-prev-page.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-prev-page.png deleted file mode 100644 index 6f6819dee..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-prev-page.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-user-add.png b/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-user-add.png deleted file mode 100644 index 8a9f22fa5..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/action-icons/guac-user-add.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-d.png b/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-d.png deleted file mode 100644 index 15b1a77b3..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-d.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-l.png b/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-l.png deleted file mode 100644 index 91f8150d3..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-l.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-r.png b/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-r.png deleted file mode 100644 index 3ab9d5b2b..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-r.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-u.png b/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-u.png deleted file mode 100644 index 057cccf95..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/arrows/arrows-u.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/group-icons/guac-closed.png b/guacamole-auth-uds/src/main/webapp/images/group-icons/guac-closed.png deleted file mode 100644 index bfa036be8..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/group-icons/guac-closed.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/group-icons/guac-open.png b/guacamole-auth-uds/src/main/webapp/images/group-icons/guac-open.png deleted file mode 100644 index c6396eda8..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/group-icons/guac-open.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/guac-mono-192.png b/guacamole-auth-uds/src/main/webapp/images/guac-mono-192.png deleted file mode 100644 index 428396041..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/guac-mono-192.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-144.png b/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-144.png deleted file mode 100644 index e2cb830e9..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-144.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-24.png b/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-24.png deleted file mode 100644 index 3652598c5..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-24.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-64.png b/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-64.png deleted file mode 100644 index 99aaf3ea9..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/guacamole-logo-64.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/mouse/blank.cur b/guacamole-auth-uds/src/main/webapp/images/mouse/blank.cur deleted file mode 100644 index 60b635aba..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/mouse/blank.cur and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/mouse/blank.gif b/guacamole-auth-uds/src/main/webapp/images/mouse/blank.gif deleted file mode 100644 index ec5c17c0a..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/mouse/blank.gif and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/mouse/dot.gif b/guacamole-auth-uds/src/main/webapp/images/mouse/dot.gif deleted file mode 100644 index 9ac8a00b9..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/mouse/dot.gif and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/noguacamole-logo-24.png b/guacamole-auth-uds/src/main/webapp/images/noguacamole-logo-24.png deleted file mode 100644 index 2245bfdf1..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/noguacamole-logo-24.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/progress.png b/guacamole-auth-uds/src/main/webapp/images/progress.png deleted file mode 100644 index 72e0495bb..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/progress.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-monitor.png b/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-monitor.png deleted file mode 100644 index 6608c2935..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-monitor.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-plug.png b/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-plug.png deleted file mode 100644 index d54ee53d4..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-plug.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-text.png b/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-text.png deleted file mode 100644 index 8d5eff62a..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/protocol-icons/guac-text.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/settings/tablet-keys.png b/guacamole-auth-uds/src/main/webapp/images/settings/tablet-keys.png deleted file mode 100644 index 14eb5777e..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/settings/tablet-keys.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/settings/touchpad.png b/guacamole-auth-uds/src/main/webapp/images/settings/touchpad.png deleted file mode 100644 index 3facb5d38..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/settings/touchpad.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/settings/touchscreen.png b/guacamole-auth-uds/src/main/webapp/images/settings/touchscreen.png deleted file mode 100644 index 11ad40d9e..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/settings/touchscreen.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/settings/zoom-in.png b/guacamole-auth-uds/src/main/webapp/images/settings/zoom-in.png deleted file mode 100644 index ef36301b4..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/settings/zoom-in.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/settings/zoom-out.png b/guacamole-auth-uds/src/main/webapp/images/settings/zoom-out.png deleted file mode 100644 index 358632cf8..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/settings/zoom-out.png and /dev/null differ diff --git a/guacamole-auth-uds/src/main/webapp/images/user-icons/guac-user.png b/guacamole-auth-uds/src/main/webapp/images/user-icons/guac-user.png deleted file mode 100644 index 527004040..000000000 Binary files a/guacamole-auth-uds/src/main/webapp/images/user-icons/guac-user.png and /dev/null differ