Skip to content

Commit c1b0e4a

Browse files
committed
Centralize cookie creation
Change-Id: I1a17416121764f33a8d05a88c80cece0c03ac41d
1 parent 1293c27 commit c1b0e4a

7 files changed

+25
-32
lines changed

src/main/java/com/gitblit/auth/AuthenticationProvider.java

+9
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import com.gitblit.manager.IUserManager;
2727
import com.gitblit.models.TeamModel;
2828
import com.gitblit.models.UserModel;
29+
import com.gitblit.utils.ArrayUtils;
30+
import com.gitblit.utils.StringUtils;
2931

3032
public abstract class AuthenticationProvider {
3133

@@ -68,6 +70,13 @@ public String getServiceName() {
6870
return serviceName;
6971
}
7072

73+
protected void setCookie(UserModel user, char [] password) {
74+
// create a user cookie
75+
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
76+
user.cookie = StringUtils.getSHA1(user.username + new String(password));
77+
}
78+
}
79+
7180
protected void updateUser(UserModel userModel) {
7281
// TODO implement user model change detection
7382
// account for new user and revised user

src/main/java/com/gitblit/auth/HtpasswdAuthProvider.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
import com.gitblit.Keys;
3636
import com.gitblit.auth.AuthenticationProvider.UsernamePasswordAuthenticationProvider;
3737
import com.gitblit.models.UserModel;
38-
import com.gitblit.utils.ArrayUtils;
39-
import com.gitblit.utils.StringUtils;
4038

4139

4240
/**
@@ -186,9 +184,7 @@ else if (supportPlaintextPwd() && storedPwd.equals(passwd)){
186184
}
187185

188186
// create a user cookie
189-
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
190-
user.cookie = StringUtils.getSHA1(user.username + passwd);
191-
}
187+
setCookie(user, password);
192188

193189
// Set user attributes, hide password from backing user service.
194190
user.password = Constants.EXTERNAL_ACCOUNT;

src/main/java/com/gitblit/auth/LdapAuthProvider.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,7 @@ public UserModel authenticate(String username, char[] password) {
295295
}
296296

297297
// create a user cookie
298-
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
299-
user.cookie = StringUtils.getSHA1(user.username + new String(password));
300-
}
298+
setCookie(user, password);
301299

302300
if (!supportsTeamMembershipChanges()) {
303301
getTeamsFromLdap(ldapConnection, simpleUsername, loggingInUser, user);

src/main/java/com/gitblit/auth/PAMAuthProvider.java

+4-6
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
import com.gitblit.Keys;
2727
import com.gitblit.auth.AuthenticationProvider.UsernamePasswordAuthenticationProvider;
2828
import com.gitblit.models.UserModel;
29-
import com.gitblit.utils.ArrayUtils;
30-
import com.gitblit.utils.StringUtils;
3129

3230
/**
3331
* Implementation of PAM authentication for Linux/Unix/MacOSX.
@@ -104,13 +102,13 @@ public UserModel authenticate(String username, char[] password) {
104102
}
105103

106104
UserModel user = userManager.getUserModel(username);
107-
if (user == null) // create user object for new authenticated user
105+
if (user == null) {
106+
// create user object for new authenticated user
108107
user = new UserModel(username.toLowerCase());
108+
}
109109

110110
// create a user cookie
111-
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
112-
user.cookie = StringUtils.getSHA1(user.username + new String(password));
113-
}
111+
setCookie(user, password);
114112

115113
// update user attributes from UnixUser
116114
user.accountType = getAccountType();

src/main/java/com/gitblit/auth/RedmineAuthProvider.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import com.gitblit.Keys;
2727
import com.gitblit.auth.AuthenticationProvider.UsernamePasswordAuthenticationProvider;
2828
import com.gitblit.models.UserModel;
29-
import com.gitblit.utils.ArrayUtils;
3029
import com.gitblit.utils.ConnectionUtils;
3130
import com.gitblit.utils.StringUtils;
3231
import com.google.gson.Gson;
@@ -122,13 +121,13 @@ public UserModel authenticate(String username, char[] password) {
122121
}
123122

124123
UserModel user = userManager.getUserModel(username);
125-
if (user == null) // create user object for new authenticated user
124+
if (user == null) {
125+
// create user object for new authenticated user
126126
user = new UserModel(username.toLowerCase());
127+
}
127128

128129
// create a user cookie
129-
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
130-
user.cookie = StringUtils.getSHA1(user.username + new String(password));
131-
}
130+
setCookie(user, password);
132131

133132
// update user attributes from Redmine
134133
user.accountType = getAccountType();

src/main/java/com/gitblit/auth/SalesforceAuthProvider.java

+2-8
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import com.gitblit.Keys;
66
import com.gitblit.auth.AuthenticationProvider.UsernamePasswordAuthenticationProvider;
77
import com.gitblit.models.UserModel;
8-
import com.gitblit.utils.ArrayUtils;
9-
import com.gitblit.utils.StringUtils;
108
import com.sforce.soap.partner.Connector;
119
import com.sforce.soap.partner.GetUserInfoResult;
1210
import com.sforce.soap.partner.PartnerConnection;
@@ -62,15 +60,11 @@ public UserModel authenticate(String username, char[] password) {
6260
UserModel user = null;
6361
synchronized (this) {
6462
user = userManager.getUserModel(simpleUsername);
65-
if (user == null)
63+
if (user == null) {
6664
user = new UserModel(simpleUsername);
67-
68-
if (StringUtils.isEmpty(user.cookie)
69-
&& !ArrayUtils.isEmpty(password)) {
70-
user.cookie = StringUtils.getSHA1(user.username
71-
+ new String(password));
7265
}
7366

67+
setCookie(user, password);
7468
setUserAttributes(user, info);
7569

7670
updateUser(user);

src/main/java/com/gitblit/auth/WindowsAuthProvider.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import com.gitblit.Keys;
3030
import com.gitblit.auth.AuthenticationProvider.UsernamePasswordAuthenticationProvider;
3131
import com.gitblit.models.UserModel;
32-
import com.gitblit.utils.ArrayUtils;
3332
import com.gitblit.utils.StringUtils;
3433
import com.sun.jna.platform.win32.Win32Exception;
3534

@@ -136,13 +135,13 @@ public UserModel authenticate(String username, char[] password) {
136135
}
137136

138137
UserModel user = userManager.getUserModel(username);
139-
if (user == null) // create user object for new authenticated user
138+
if (user == null) {
139+
// create user object for new authenticated user
140140
user = new UserModel(username.toLowerCase());
141+
}
141142

142143
// create a user cookie
143-
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
144-
user.cookie = StringUtils.getSHA1(user.username + new String(password));
145-
}
144+
setCookie(user, password);
146145

147146
// update user attributes from Windows identity
148147
user.accountType = getAccountType();

0 commit comments

Comments
 (0)