From 697c4601dac77174d6ac4e11934b654847b19087 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 22 Mar 2012 22:44:02 -0700 Subject: [PATCH] Use truly generic HTTP-based credentials object, rename project to guacamole-auth (truly, this is a basic framework for extending Guacamole, a single webapp, NOT part of guacamole-common, which is the basis of the Guacamole webapp and potentially others). --- guacamole-ext/pom.xml | 12 +++++-- .../net/auth/AuthenticationProvider.java | 8 ++--- ...UsernamePassword.java => Credentials.java} | 31 ++++++++++++++++++- 3 files changed, 43 insertions(+), 8 deletions(-) rename guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/{UsernamePassword.java => Credentials.java} (82%) diff --git a/guacamole-ext/pom.xml b/guacamole-ext/pom.xml index 1d8bd9e92..d100206c2 100644 --- a/guacamole-ext/pom.xml +++ b/guacamole-ext/pom.xml @@ -3,10 +3,10 @@ 4.0.0 net.sourceforge.guacamole - guacamole-common-auth + guacamole-auth jar 0.6.0 - guacamole-common-auth + guacamole-auth http://guacamole.sourceforge.net/ @@ -31,6 +31,14 @@ + + + javax.servlet + servlet-api + 2.5 + provided + + net.sourceforge.guacamole diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/AuthenticationProvider.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/AuthenticationProvider.java index b938a90a2..f3ea77320 100644 --- a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/AuthenticationProvider.java +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/AuthenticationProvider.java @@ -43,13 +43,11 @@ import net.sourceforge.guacamole.protocol.GuacamoleConfiguration; /** * Provides means of retrieving a set of named GuacamoleConfigurations for a - * given arbitrary credentials object. + * given Credentials object. * * @author Michael Jumper - * @param The type to use as credentials for determining which - * configurations are authorized. */ -public interface AuthenticationProvider { +public interface AuthenticationProvider { /** * Given an arbitrary credentials object, returns a Map containing all @@ -64,7 +62,7 @@ public interface AuthenticationProvider { * configurations. */ public Map - getAuthorizedConfigurations(CredentialType credentials) + getAuthorizedConfigurations(Credentials credentials) throws GuacamoleException; } diff --git a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/UsernamePassword.java b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/Credentials.java similarity index 82% rename from guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/UsernamePassword.java rename to guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/Credentials.java index 76d6e7ecd..d88201700 100644 --- a/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/UsernamePassword.java +++ b/guacamole-ext/src/main/java/net/sourceforge/guacamole/net/auth/Credentials.java @@ -1,5 +1,8 @@ package net.sourceforge.guacamole.net.auth; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * @@ -43,7 +46,7 @@ package net.sourceforge.guacamole.net.auth; * * @author Michael Jumper */ -public class UsernamePassword { +public class Credentials { /** * An arbitrary username. @@ -55,6 +58,16 @@ public class UsernamePassword { */ private String password; + /** + * The HttpServletRequest carrying additional credentials, if any. + */ + private HttpServletRequest request; + + /** + * The HttpSession carrying additional credentials, if any. + */ + private HttpSession session; + /** * Returns the password associated with this username/password pair. * @return The password associated with this username/password pair, or @@ -91,4 +104,20 @@ public class UsernamePassword { this.username = username; } + public HttpServletRequest getRequest() { + return request; + } + + public void setRequest(HttpServletRequest request) { + this.request = request; + } + + public HttpSession getSession() { + return session; + } + + public void setSession(HttpSession session) { + this.session = session; + } + }