Skip to content

Commit bf179e6

Browse files
committed
Merge branch 'rcaa-master' into master.
2 parents 9a51d2b + 2be2c2c commit bf179e6

File tree

13 files changed

+136
-12
lines changed

13 files changed

+136
-12
lines changed

src/main/java/com/gitblit/ConfigUserService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,7 @@ protected synchronized void read() {
898898
user.countryCode = config.getString(USER, username, COUNTRYCODE);
899899
user.cookie = config.getString(USER, username, COOKIE);
900900
if (StringUtils.isEmpty(user.cookie) && !StringUtils.isEmpty(user.password)) {
901-
user.cookie = StringUtils.getSHA1(user.username + user.password);
901+
user.cookie = user.createCookie();
902902
}
903903

904904
// preferences

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ public String getServiceName() {
7878

7979
public abstract AuthenticationType getAuthenticationType();
8080

81-
protected void setCookie(UserModel user, char [] password) {
81+
protected void setCookie(UserModel user) {
8282
// create a user cookie
83-
if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) {
84-
user.cookie = StringUtils.getSHA1(user.username + new String(password));
83+
if (StringUtils.isEmpty(user.cookie)) {
84+
user.cookie = user.createCookie();
8585
}
8686
}
8787

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ else if (supportPlaintextPwd() && storedPwd.equals(passwd)){
196196
}
197197

198198
// create a user cookie
199-
setCookie(user, password);
199+
setCookie(user);
200200

201201
// Set user attributes, hide password from backing user service.
202202
user.password = Constants.EXTERNAL_ACCOUNT;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ public UserModel authenticate(String username, char[] password) {
307307
}
308308

309309
// create a user cookie
310-
setCookie(user, password);
310+
setCookie(user);
311311

312312
if (!supportsTeamMembershipChanges()) {
313313
getTeamsFromLdap(ldapConnection, simpleUsername, loggingInUser, user);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public UserModel authenticate(String username, char[] password) {
122122
}
123123

124124
// create a user cookie
125-
setCookie(user, password);
125+
setCookie(user);
126126

127127
// update user attributes from UnixUser
128128
user.accountType = getAccountType();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public UserModel authenticate(String username, char[] password) {
139139
}
140140

141141
// create a user cookie
142-
setCookie(user, password);
142+
setCookie(user);
143143

144144
// update user attributes from Redmine
145145
user.accountType = getAccountType();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public UserModel authenticate(String username, char[] password) {
6666
user = new UserModel(simpleUsername);
6767
}
6868

69-
setCookie(user, password);
69+
setCookie(user);
7070
setUserAttributes(user, info);
7171

7272
updateUser(user);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public UserModel authenticate(String username, char[] password) {
153153
}
154154

155155
// create a user cookie
156-
setCookie(user, password);
156+
setCookie(user);
157157

158158
// update user attributes from Windows identity
159159
user.accountType = getAccountType();

src/main/java/com/gitblit/client/EditUserDialog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ private boolean validateFields() {
330330
}
331331

332332
// change the cookie
333-
user.cookie = StringUtils.getSHA1(user.username + password);
333+
user.cookie = user.createCookie();
334334

335335
String type = settings.get(Keys.realm.passwordStorage).getString("md5");
336336
if (type.equalsIgnoreCase("md5")) {

src/main/java/com/gitblit/models/UserModel.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.io.Serializable;
1919
import java.security.Principal;
20+
import java.security.SecureRandom;
2021
import java.util.ArrayList;
2122
import java.util.Collections;
2223
import java.util.HashSet;
@@ -36,6 +37,7 @@
3637
import com.gitblit.Constants.RegistrantType;
3738
import com.gitblit.utils.ArrayUtils;
3839
import com.gitblit.utils.ModelUtils;
40+
import com.gitblit.utils.SecureRandom;
3941
import com.gitblit.utils.StringUtils;
4042

4143
/**
@@ -52,6 +54,8 @@ public class UserModel implements Principal, Serializable, Comparable<UserModel>
5254

5355
public static final UserModel ANONYMOUS = new UserModel();
5456

57+
private static final SecureRandom RANDOM = new SecureRandom();
58+
5559
// field names are reflectively mapped in EditUser page
5660
public String username;
5761
public String password;
@@ -660,4 +664,8 @@ public boolean isMyPersonalRepository(String repository) {
660664
String projectPath = StringUtils.getFirstPathElement(repository);
661665
return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase(getPersonalPath());
662666
}
667+
668+
public String createCookie() {
669+
return StringUtils.getSHA1(RANDOM.randomBytes(32));
670+
}
663671
}

0 commit comments

Comments
 (0)