From 28980c3d6d989b900d02e3357473294561334e4a Mon Sep 17 00:00:00 2001
From: Joel Johnson <joel.johnson@issinc.com>
Date: Mon, 29 Jun 2015 12:19:07 -0400
Subject: [PATCH] use JEE 3.0 to allow cookie session tracking

---
 src/main/java/com/gitblit/manager/IAuthenticationManager.java |   75 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 72 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gitblit/manager/IAuthenticationManager.java b/src/main/java/com/gitblit/manager/IAuthenticationManager.java
index 5d98d12..c81092b 100644
--- a/src/main/java/com/gitblit/manager/IAuthenticationManager.java
+++ b/src/main/java/com/gitblit/manager/IAuthenticationManager.java
@@ -18,9 +18,10 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.gitblit.Constants.Role;
 import com.gitblit.models.TeamModel;
 import com.gitblit.models.UserModel;
-import com.gitblit.transport.ssh.SshSession;
+import com.gitblit.transport.ssh.SshKey;
 
 public interface IAuthenticationManager extends IManager {
 
@@ -31,10 +32,19 @@
 	 *
 	 * @param httpRequest
 	 * @return a user object or null
+	 * @since 1.4.0
 	 */
 	UserModel authenticate(HttpServletRequest httpRequest);
 
-	public UserModel authenticate(SshSession sshSession);
+	/**
+	 * Authenticate a user based on a ssh public key.
+	 *
+	 * @param username
+	 * @param key
+	 * @return a user object or null
+* 	 * @since 1.5.0
+	 */
+	UserModel authenticate(String username, SshKey key);
 
 	/**
 	 * Authenticate a user based on HTTP request parameters.
@@ -45,6 +55,7 @@
 	 * @param httpRequest
 	 * @param requiresCertificate
 	 * @return a user object or null
+	 * @since 1.4.0
 	 */
 	UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate);
 
@@ -55,14 +66,26 @@
 	 * @param username
 	 * @param password
 	 * @return a user object or null
+	 * @since 1.4.0
 	 */
 	UserModel authenticate(String username, char[] password);
+
+	/**
+	 * Return the UserModel for already authenticated user.
+	 *
+	 * @see IUserService.authenticate(String, char[])
+	 * @param username
+	 * @return a user object or null
+	 * @since 1.7.0
+	 */
+	UserModel authenticate(String username);
 
 	/**
 	 * Returns the Gitlbit cookie in the request.
 	 *
 	 * @param request
 	 * @return the Gitblit cookie for the request or null if not found
+	 * @since 1.4.0
 	 */
 	String getCookie(HttpServletRequest request);
 
@@ -71,21 +94,45 @@
 	 *
 	 * @param response
 	 * @param user
+	 * @since 1.4.0
 	 */
+	@Deprecated
 	void setCookie(HttpServletResponse response, UserModel user);
+
+	/**
+	 * Sets a cookie for the specified user.
+	 *
+	 * @param request
+	 * @param response
+	 * @param user
+	 * @since 1.6.1
+	 */
+	void setCookie(HttpServletRequest request, HttpServletResponse response, UserModel user);
 
 	/**
 	 * Logout a user.
 	 *
 	 * @param user
+	 * @since 1.4.0
 	 */
+	@Deprecated
 	void logout(HttpServletResponse response, UserModel user);
+
+	/**
+	 * Logout a user.
+	 *
+	 * @param request
+	 * @param response
+	 * @param user
+	 * @since 1.6.1
+	 */
+	void logout(HttpServletRequest request, HttpServletResponse response, UserModel user);
 
 	/**
 	 * Does the user service support changes to credentials?
 	 *
 	 * @return true or false
-	 * @since 1.0.0
+	 * @since 1.4.0
 	 */
 	boolean supportsCredentialChanges(UserModel user);
 
@@ -94,6 +141,7 @@
 	 *
 	 * @param user
 	 * @return true if the user service supports display name changes
+	 * @since 1.4.0
 	 */
 	boolean supportsDisplayNameChanges(UserModel user);
 
@@ -102,6 +150,7 @@
 	 *
 	 * @param user
 	 * @return true if the user service supports email address changes
+	 * @since 1.4.0
 	 */
 	boolean supportsEmailAddressChanges(UserModel user);
 
@@ -110,6 +159,7 @@
 	 *
 	 * @param user
 	 * @return true if the user service supports team membership changes
+	 * @since 1.4.0
 	 */
 	boolean supportsTeamMembershipChanges(UserModel user);
 
@@ -118,7 +168,26 @@
 	 *
 	 * @param user
 	 * @return true if the team memberships can be changed
+	 * @since 1.4.0
 	 */
 	boolean supportsTeamMembershipChanges(TeamModel team);
 
+	/**
+	 * Returns true if the specified role can be changed.
+	 *
+	 * @param user
+	 * @return true if the specified role can be changed
+	 * @since 1.6.1
+	 */
+	boolean supportsRoleChanges(UserModel user, Role role);
+
+	/**
+	 * Returns true if the specified role can be changed.
+	 *
+	 * @param team
+	 * @return true if the specified role can be changed
+	 * @since 1.6.1
+	 */
+	boolean supportsRoleChanges(TeamModel team, Role role);
+
 }
\ No newline at end of file

--
Gitblit v1.9.1