GUACAMOLE-195: Rename extension to guacamole-auth-header to more accurately reflect nature of the authentication.
This commit is contained in:
1 parent
3d6239d3aa
commit
96fb8a9c6b
18 files changed
+37
-35
No files matched your search
File renamed without changes.
@@ -24,10 +24,10 @@
|
|||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.apache.guacamole</groupId>
|
<groupId>org.apache.guacamole</groupId>
|
||||||
<artifactId>guacamole-auth-http</artifactId>
|
<artifactId>guacamole-auth-header</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<version>0.9.11-incubating</version>
|
<version>0.9.11-incubating</version>
|
||||||
<name>guacamole-auth-http</name>
|
<name>guacamole-auth-header</name>
|
||||||
<url>http://guacamole.incubator.apache.org/</url>
|
<url>http://guacamole.incubator.apache.org/</url>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+8
-6
@@ -17,7 +17,7 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.guacamole.auth.http;
|
package org.apache.guacamole.auth.header;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Provider;
|
import com.google.inject.Provider;
|
||||||
@@ -26,12 +26,12 @@ import org.apache.guacamole.GuacamoleException;
|
|||||||
import org.apache.guacamole.net.auth.Credentials;
|
import org.apache.guacamole.net.auth.Credentials;
|
||||||
import org.apache.guacamole.net.auth.credentials.CredentialsInfo;
|
import org.apache.guacamole.net.auth.credentials.CredentialsInfo;
|
||||||
import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException;
|
import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException;
|
||||||
import org.apache.guacamole.auth.http.user.AuthenticatedUser;
|
import org.apache.guacamole.auth.header.user.AuthenticatedUser;
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service providing convenience functions for the HTTP AuthenticationProvider
|
* Service providing convenience functions for the HTTP Header
|
||||||
* implementation.
|
* AuthenticationProvider implementation.
|
||||||
*
|
*
|
||||||
* @author Nick Couchman
|
* @author Nick Couchman
|
||||||
*/
|
*/
|
||||||
@@ -69,8 +69,10 @@ public class AuthenticationProviderService {
|
|||||||
|
|
||||||
// Pull HTTP header from request if present
|
// Pull HTTP header from request if present
|
||||||
HttpServletRequest request = credentials.getRequest();
|
HttpServletRequest request = credentials.getRequest();
|
||||||
if (request != null) {
|
if(request != null) {
|
||||||
|
// Try getRemoteUser(), first
|
||||||
String username = request.getRemoteUser();
|
String username = request.getRemoteUser();
|
||||||
|
// Check if that worked, if not, try the configured header.
|
||||||
if(username == null)
|
if(username == null)
|
||||||
username = request.getHeader(confService.getHttpAuthHeader());
|
username = request.getHeader(confService.getHttpAuthHeader());
|
||||||
|
|
||||||
@@ -81,7 +83,7 @@ public class AuthenticationProviderService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Request HTTP authentication
|
// Authentication not provided via header, yet, so we request it.
|
||||||
throw new GuacamoleInvalidCredentialsException("Invalid login.", CredentialsInfo.USERNAME_PASSWORD);
|
throw new GuacamoleInvalidCredentialsException("Invalid login.", CredentialsInfo.USERNAME_PASSWORD);
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-2
@@ -17,7 +17,7 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.guacamole.auth.http;
|
package org.apache.guacamole.auth.header;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import org.apache.guacamole.GuacamoleException;
|
import org.apache.guacamole.GuacamoleException;
|
||||||
@@ -51,7 +51,7 @@ public class ConfigurationService {
|
|||||||
*/
|
*/
|
||||||
public String getHttpAuthHeader() throws GuacamoleException {
|
public String getHttpAuthHeader() throws GuacamoleException {
|
||||||
return environment.getProperty(
|
return environment.getProperty(
|
||||||
HTTPGuacamoleProperties.HTTP_AUTH_HEADER,
|
HTTPHeaderGuacamoleProperties.HTTP_AUTH_HEADER,
|
||||||
"REMOTE_USER"
|
"REMOTE_USER"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
+6
-6
@@ -17,7 +17,7 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.guacamole.auth.http;
|
package org.apache.guacamole.auth.header;
|
||||||
|
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
@@ -35,7 +35,7 @@ import org.apache.guacamole.net.auth.UserContext;
|
|||||||
*
|
*
|
||||||
* @author Nick Couchman
|
* @author Nick Couchman
|
||||||
*/
|
*/
|
||||||
public class HTTPAuthenticationProvider implements AuthenticationProvider {
|
public class HTTPHeaderAuthenticationProvider implements AuthenticationProvider {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injector which will manage the object graph of this authentication
|
* Injector which will manage the object graph of this authentication
|
||||||
@@ -44,25 +44,25 @@ public class HTTPAuthenticationProvider implements AuthenticationProvider {
|
|||||||
private final Injector injector;
|
private final Injector injector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new HTTPAuthenticationProvider that authenticates users
|
* Creates a new HTTPHeaderAuthenticationProvider that authenticates users
|
||||||
* using HTTP headers.
|
* using HTTP headers.
|
||||||
*
|
*
|
||||||
* @throws GuacamoleException
|
* @throws GuacamoleException
|
||||||
* If a required property is missing, or an error occurs while parsing
|
* If a required property is missing, or an error occurs while parsing
|
||||||
* a property.
|
* a property.
|
||||||
*/
|
*/
|
||||||
public HTTPAuthenticationProvider() throws GuacamoleException {
|
public HTTPHeaderAuthenticationProvider() throws GuacamoleException {
|
||||||
|
|
||||||
// Set up Guice injector.
|
// Set up Guice injector.
|
||||||
injector = Guice.createInjector(
|
injector = Guice.createInjector(
|
||||||
new HTTPAuthenticationProviderModule(this)
|
new HTTPHeaderAuthenticationProviderModule(this)
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getIdentifier() {
|
public String getIdentifier() {
|
||||||
return "http";
|
return "header";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
+8
-8
@@ -17,7 +17,7 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.guacamole.auth.http;
|
package org.apache.guacamole.auth.header;
|
||||||
|
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import org.apache.guacamole.GuacamoleException;
|
import org.apache.guacamole.GuacamoleException;
|
||||||
@@ -26,11 +26,11 @@ import org.apache.guacamole.environment.LocalEnvironment;
|
|||||||
import org.apache.guacamole.net.auth.AuthenticationProvider;
|
import org.apache.guacamole.net.auth.AuthenticationProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guice module which configures HTTP-specific injections.
|
* Guice module which configures HTTP header-specific injections.
|
||||||
*
|
*
|
||||||
* @author Michael Jumper
|
* @author Michael Jumper
|
||||||
*/
|
*/
|
||||||
public class HTTPAuthenticationProviderModule extends AbstractModule {
|
public class HTTPHeaderAuthenticationProviderModule extends AbstractModule {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guacamole server environment.
|
* Guacamole server environment.
|
||||||
@@ -38,14 +38,14 @@ public class HTTPAuthenticationProviderModule extends AbstractModule {
|
|||||||
private final Environment environment;
|
private final Environment environment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A reference to the HTTPAuthenticationProvider on behalf of which this
|
* A reference to the HTTPHeaderAuthenticationProvider on behalf of which this
|
||||||
* module has configured injection.
|
* module has configured injection.
|
||||||
*/
|
*/
|
||||||
private final AuthenticationProvider authProvider;
|
private final AuthenticationProvider authProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new HTTP authentication provider module which configures
|
* Creates a new HTTP header authentication provider module which configures
|
||||||
* injection for the HTTPAuthenticationProvider.
|
* injection for the HTTPHeaderAuthenticationProvider.
|
||||||
*
|
*
|
||||||
* @param authProvider
|
* @param authProvider
|
||||||
* The AuthenticationProvider for which injection is being configured.
|
* The AuthenticationProvider for which injection is being configured.
|
||||||
@@ -54,7 +54,7 @@ public class HTTPAuthenticationProviderModule extends AbstractModule {
|
|||||||
* If an error occurs while retrieving the Guacamole server
|
* If an error occurs while retrieving the Guacamole server
|
||||||
* environment.
|
* environment.
|
||||||
*/
|
*/
|
||||||
public HTTPAuthenticationProviderModule(AuthenticationProvider authProvider)
|
public HTTPHeaderAuthenticationProviderModule(AuthenticationProvider authProvider)
|
||||||
throws GuacamoleException {
|
throws GuacamoleException {
|
||||||
|
|
||||||
// Get local environment
|
// Get local environment
|
||||||
@@ -72,7 +72,7 @@ public class HTTPAuthenticationProviderModule extends AbstractModule {
|
|||||||
bind(AuthenticationProvider.class).toInstance(authProvider);
|
bind(AuthenticationProvider.class).toInstance(authProvider);
|
||||||
bind(Environment.class).toInstance(environment);
|
bind(Environment.class).toInstance(environment);
|
||||||
|
|
||||||
// Bind HTTP-specific classes
|
// Bind HTTPHeader-specific classes
|
||||||
bind(ConfigurationService.class);
|
bind(ConfigurationService.class);
|
||||||
|
|
||||||
}
|
}
|
||||||
+7
-7
@@ -17,28 +17,28 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.guacamole.auth.http;
|
package org.apache.guacamole.auth.header;
|
||||||
|
|
||||||
import org.apache.guacamole.properties.IntegerGuacamoleProperty;
|
import org.apache.guacamole.properties.IntegerGuacamoleProperty;
|
||||||
import org.apache.guacamole.properties.StringGuacamoleProperty;
|
import org.apache.guacamole.properties.StringGuacamoleProperty;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides properties required for use of the HTTP authentication provider.
|
* Provides properties required for use of the HTTP header
|
||||||
* These properties will be read from guacamole.properties when the HTTP
|
* authentication provider. These properties will be read from
|
||||||
* authentication provider is used.
|
* guacamole.properties when the HTTP authentication provider is used.
|
||||||
*
|
*
|
||||||
* @author Nick Couchman
|
* @author Nick Couchman
|
||||||
*/
|
*/
|
||||||
public class HTTPGuacamoleProperties {
|
public class HTTPHeaderGuacamoleProperties {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class should not be instantiated.
|
* This class should not be instantiated.
|
||||||
*/
|
*/
|
||||||
private HTTPGuacamoleProperties() {}
|
private HTTPHeaderGuacamoleProperties() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The header used for HTTP authentication.
|
* The header used for HTTP header authentication.
|
||||||
*/
|
*/
|
||||||
public static final StringGuacamoleProperty HTTP_AUTH_HEADER = new StringGuacamoleProperty() {
|
public static final StringGuacamoleProperty HTTP_AUTH_HEADER = new StringGuacamoleProperty() {
|
||||||
|
|
||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.guacamole.auth.http.user;
|
package org.apache.guacamole.auth.header.user;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import org.apache.guacamole.net.auth.AbstractAuthenticatedUser;
|
import org.apache.guacamole.net.auth.AbstractAuthenticatedUser;
|
||||||
+2
-2
@@ -3,10 +3,10 @@
|
|||||||
"guacamoleVersion" : "0.9.11-incubating",
|
"guacamoleVersion" : "0.9.11-incubating",
|
||||||
|
|
||||||
"name" : "HTTP Header Authentication Extension",
|
"name" : "HTTP Header Authentication Extension",
|
||||||
"namespace" : "guac-http",
|
"namespace" : "guac-header",
|
||||||
|
|
||||||
"authProviders" : [
|
"authProviders" : [
|
||||||
"org.apache.guacamole.auth.http.HTTPAuthenticationProvider"
|
"org.apache.guacamole.auth.header.HTTPHeaderAuthenticationProvider"
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
<!-- Authentication extensions -->
|
<!-- Authentication extensions -->
|
||||||
<module>extensions/guacamole-auth-duo</module>
|
<module>extensions/guacamole-auth-duo</module>
|
||||||
<module>extensions/guacamole-auth-http</module>
|
<module>extensions/guacamole-auth-header</module>
|
||||||
<module>extensions/guacamole-auth-jdbc</module>
|
<module>extensions/guacamole-auth-jdbc</module>
|
||||||
<module>extensions/guacamole-auth-ldap</module>
|
<module>extensions/guacamole-auth-ldap</module>
|
||||||
<module>extensions/guacamole-auth-noauth</module>
|
<module>extensions/guacamole-auth-noauth</module>
|
||||||
|
|||||||
Reference in new issue
Block a user