From 04a98505a4ab8f48aee22800fcac193d9367d0ae Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 29 Nov 2013 11:05:51 -0500 Subject: [PATCH] Refactor user services and separate authentication (issue-281) --- src/main/java/com/gitblit/GitBlit.java | 115 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 66 insertions(+), 49 deletions(-) diff --git a/src/main/java/com/gitblit/Gitblit.java b/src/main/java/com/gitblit/GitBlit.java similarity index 90% rename from src/main/java/com/gitblit/Gitblit.java rename to src/main/java/com/gitblit/GitBlit.java index 64316bb..d4e89b0 100644 --- a/src/main/java/com/gitblit/Gitblit.java +++ b/src/main/java/com/gitblit/GitBlit.java @@ -29,13 +29,13 @@ import com.gitblit.Constants.FederationRequest; import com.gitblit.Constants.FederationToken; +import com.gitblit.manager.IAuthenticationManager; import com.gitblit.manager.IFederationManager; import com.gitblit.manager.IGitblitManager; import com.gitblit.manager.INotificationManager; import com.gitblit.manager.IProjectManager; import com.gitblit.manager.IRepositoryManager; import com.gitblit.manager.IRuntimeManager; -import com.gitblit.manager.ISessionManager; import com.gitblit.manager.IUserManager; import com.gitblit.models.FederationModel; import com.gitblit.models.FederationProposal; @@ -54,7 +54,7 @@ import com.gitblit.models.UserModel; /** - * Gitblit is an aggregate interface delegate. It implements all the manager + * GitBlit is an aggregate interface delegate. It implements all the manager * interfaces and delegates all methods calls to the actual manager implementations. * It's primary purpose is to provide complete management control to the git * upload and receive pack functions. @@ -62,10 +62,10 @@ * @author James Moger * */ -public class Gitblit implements IRuntimeManager, +public class GitBlit implements IRuntimeManager, INotificationManager, IUserManager, - ISessionManager, + IAuthenticationManager, IRepositoryManager, IProjectManager, IGitblitManager, @@ -77,7 +77,7 @@ private final IUserManager userManager; - private final ISessionManager sessionManager; + private final IAuthenticationManager authenticationManager; private final IRepositoryManager repositoryManager; @@ -87,11 +87,11 @@ private final IFederationManager federationManager; - public Gitblit( + public GitBlit( IRuntimeManager runtimeManager, INotificationManager notificationManager, IUserManager userManager, - ISessionManager sessionManager, + IAuthenticationManager authenticationManager, IRepositoryManager repositoryManager, IProjectManager projectManager, IGitblitManager gitblitManager, @@ -100,7 +100,7 @@ this.runtimeManager = runtimeManager; this.notificationManager = notificationManager; this.userManager = userManager; - this.sessionManager = sessionManager; + this.authenticationManager = authenticationManager; this.repositoryManager = repositoryManager; this.projectManager = projectManager; this.gitblitManager = gitblitManager; @@ -108,13 +108,36 @@ } @Override - public Gitblit start() { + public GitBlit start() { return this; } @Override - public Gitblit stop() { + public GitBlit stop() { return this; + } + + /* + * ISTOREDSETTINGS + * + * these methods are necessary for (nearly) seamless Groovy hook operation + * after the massive refactor. + */ + + public boolean getBoolean(String key, boolean defaultValue) { + return runtimeManager.getSettings().getBoolean(key, defaultValue); + } + + public String getString(String key, String defaultValue) { + return runtimeManager.getSettings().getString(key, defaultValue); + } + + public int getInteger(String key, int defaultValue) { + return runtimeManager.getSettings().getInteger(key, defaultValue); + } + + public List<String> getStrings(String key) { + return runtimeManager.getSettings().getStrings(key); } /* @@ -216,26 +239,51 @@ @Override public UserModel authenticate(String username, char[] password) { - return sessionManager.authenticate(username, password); + return authenticationManager.authenticate(username, password); } @Override public UserModel authenticate(HttpServletRequest httpRequest) { - return sessionManager.authenticate(httpRequest, false); + return authenticationManager.authenticate(httpRequest, false); } @Override public UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate) { - return sessionManager.authenticate(httpRequest, requiresCertificate); + return authenticationManager.authenticate(httpRequest, requiresCertificate); } @Override public void setCookie(HttpServletResponse response, UserModel user) { - sessionManager.setCookie(response, user); + authenticationManager.setCookie(response, user); } @Override public void logout(HttpServletResponse response, UserModel user) { - sessionManager.logout(response, user); + authenticationManager.logout(response, user); + } + + @Override + public boolean supportsCredentialChanges(UserModel user) { + return authenticationManager.supportsCredentialChanges(user); + } + + @Override + public boolean supportsDisplayNameChanges(UserModel user) { + return authenticationManager.supportsDisplayNameChanges(user); + } + + @Override + public boolean supportsEmailAddressChanges(UserModel user) { + return authenticationManager.supportsEmailAddressChanges(user); + } + + @Override + public boolean supportsTeamMembershipChanges(UserModel user) { + return authenticationManager.supportsTeamMembershipChanges(user); + } + + @Override + public boolean supportsTeamMembershipChanges(TeamModel team) { + return authenticationManager.supportsTeamMembershipChanges(team); } /* @@ -243,33 +291,7 @@ */ @Override - public boolean supportsAddUser() { - return userManager.supportsAddUser(); - } - - @Override - public boolean supportsCredentialChanges(UserModel user) { - return userManager.supportsCredentialChanges(user); - } - - @Override - public boolean supportsDisplayNameChanges(UserModel user) { - return userManager.supportsDisplayNameChanges(user); - } - - @Override - public boolean supportsEmailAddressChanges(UserModel user) { - return userManager.supportsEmailAddressChanges(user); - } - - @Override - public boolean supportsTeamMembershipChanges(UserModel user) { - return userManager.supportsTeamMembershipChanges(user); - } - - @Override - public void logout(UserModel user) { - userManager.logout(user); + public void setup(IRuntimeManager runtimeManager) { } @Override @@ -303,18 +325,13 @@ } @Override - public boolean supportsCookies() { - return userManager.supportsCookies(); - } - - @Override public String getCookie(UserModel model) { return userManager.getCookie(model); } @Override - public UserModel authenticate(char[] cookie) { - return userManager.authenticate(cookie); + public UserModel getUserModel(char[] cookie) { + return userManager.getUserModel(cookie); } @Override -- Gitblit v1.9.1