From 4e84166db5c5538e3984d9d2d6bb1f9902e65ee0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 04 Nov 2014 17:38:17 -0500 Subject: [PATCH] Merged #217 "Exclude SSLv3 from Gitblit GO https protocols" --- src/main/java/com/gitblit/auth/AuthenticationProvider.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gitblit/auth/AuthenticationProvider.java b/src/main/java/com/gitblit/auth/AuthenticationProvider.java index b8aaf07..da9a7af 100644 --- a/src/main/java/com/gitblit/auth/AuthenticationProvider.java +++ b/src/main/java/com/gitblit/auth/AuthenticationProvider.java @@ -21,11 +21,14 @@ import org.slf4j.LoggerFactory; import com.gitblit.Constants.AccountType; +import com.gitblit.Constants.Role; import com.gitblit.IStoredSettings; import com.gitblit.manager.IRuntimeManager; import com.gitblit.manager.IUserManager; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; +import com.gitblit.utils.ArrayUtils; +import com.gitblit.utils.StringUtils; public abstract class AuthenticationProvider { @@ -68,6 +71,13 @@ return serviceName; } + protected void setCookie(UserModel user, char [] password) { + // create a user cookie + if (StringUtils.isEmpty(user.cookie) && !ArrayUtils.isEmpty(password)) { + user.cookie = StringUtils.getSHA1(user.username + new String(password)); + } + } + protected void updateUser(UserModel userModel) { // TODO implement user model change detection // account for new user and revised user @@ -90,6 +100,8 @@ } public abstract void setup(); + + public abstract void stop(); public abstract UserModel authenticate(String username, char[] password); @@ -127,6 +139,24 @@ */ public abstract boolean supportsTeamMembershipChanges(); + /** + * Returns true if the user's role can be changed. + * + * @param user + * @param role + * @return true if the user's role can be changed + */ + public abstract boolean supportsRoleChanges(UserModel user, Role role); + + /** + * Returns true if the team's role can be changed. + * + * @param user + * @param role + * @return true if the team's role can be changed + */ + public abstract boolean supportsRoleChanges(TeamModel team, Role role); + @Override public String toString() { return getServiceName() + " (" + getClass().getName() + ")"; @@ -136,6 +166,11 @@ protected UsernamePasswordAuthenticationProvider(String serviceName) { super(serviceName); } + + @Override + public void stop() { + + } } public static class NullProvider extends AuthenticationProvider { @@ -146,6 +181,11 @@ @Override public void setup() { + + } + + @Override + public void stop() { } @@ -161,22 +201,33 @@ @Override public boolean supportsCredentialChanges() { - return false; + return true; } @Override public boolean supportsDisplayNameChanges() { - return false; + return true; } @Override public boolean supportsEmailAddressChanges() { - return false; + return true; } @Override public boolean supportsTeamMembershipChanges() { - return false; + return true; } + + @Override + public boolean supportsRoleChanges(UserModel user, Role role) { + return true; + } + + @Override + public boolean supportsRoleChanges(TeamModel team, Role role) { + return true; + } + } } -- Gitblit v1.9.1