From 62aeb92c04024a90d9ed392bb79de03a246a45d8 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 11 Jul 2012 17:06:38 -0400
Subject: [PATCH] Persist cookies in ConfigUserService.  Update LDAPUserService to generate cookies.

---
 src/com/gitblit/LdapUserService.java |   19 ++++++-------------
 1 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/src/com/gitblit/LdapUserService.java b/src/com/gitblit/LdapUserService.java
index 78b5f99..bba943d 100644
--- a/src/com/gitblit/LdapUserService.java
+++ b/src/com/gitblit/LdapUserService.java
@@ -27,6 +27,7 @@
 
 import com.gitblit.models.TeamModel;
 import com.gitblit.models.UserModel;
+import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
 import com.unboundid.ldap.sdk.Attribute;
 import com.unboundid.ldap.sdk.LDAPConnection;
@@ -140,17 +141,6 @@
 		return !settings.getBoolean(Keys.realm.ldap.maintainTeams, false);
 	}
 
-	/**
-	 * Does the user service support cookie authentication?
-	 * 
-	 * @return true or false
-	 */
-	@Override
-	public boolean supportsCookies() {
-		// TODO cookies need to be reviewed
-		return false;
-	}
-
 	@Override
 	public UserModel authenticate(String username, char[] password) {
 		String simpleUsername = getSimpleUsername(username);
@@ -173,8 +163,11 @@
 					UserModel user = getUserModel(simpleUsername);
 					if (user == null)	// create user object for new authenticated user
 						user = new UserModel(simpleUsername);
-					
-					
+
+					// create a user cookie
+					if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
+						user.cookie = StringUtils.getSHA1(user.username + new String(password));
+					}
 					
 					if (!supportsTeamMembershipChanges())
 						getTeamsFromLdap(ldapConnection, simpleUsername, loggingInUser, user);

--
Gitblit v1.9.1