From 54cc7d7c2483d7ca100a5db47f4e1e98bd97c7fe Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 25 Sep 2014 09:27:04 -0400 Subject: [PATCH] Merged #187 "Restrict Gitblit cookie to the context path" --- src/main/java/com/gitblit/DaggerModule.java | 167 +++++++++++++++++++++++++++---------------------------- 1 files changed, 83 insertions(+), 84 deletions(-) diff --git a/src/main/java/com/gitblit/DaggerModule.java b/src/main/java/com/gitblit/DaggerModule.java index 1fad779..dd7e1b2 100644 --- a/src/main/java/com/gitblit/DaggerModule.java +++ b/src/main/java/com/gitblit/DaggerModule.java @@ -17,44 +17,31 @@ import javax.inject.Singleton; -import org.apache.wicket.protocol.http.WebApplication; - -import com.gitblit.git.GitServlet; +import com.gitblit.manager.AuthenticationManager; import com.gitblit.manager.FederationManager; -import com.gitblit.manager.GitblitManager; +import com.gitblit.manager.IAuthenticationManager; import com.gitblit.manager.IFederationManager; -import com.gitblit.manager.IGitblitManager; +import com.gitblit.manager.IGitblit; import com.gitblit.manager.INotificationManager; +import com.gitblit.manager.IPluginManager; import com.gitblit.manager.IProjectManager; import com.gitblit.manager.IRepositoryManager; import com.gitblit.manager.IRuntimeManager; -import com.gitblit.manager.IServicesManager; -import com.gitblit.manager.ISessionManager; import com.gitblit.manager.IUserManager; import com.gitblit.manager.NotificationManager; +import com.gitblit.manager.PluginManager; import com.gitblit.manager.ProjectManager; import com.gitblit.manager.RepositoryManager; import com.gitblit.manager.RuntimeManager; -import com.gitblit.manager.ServicesManager; -import com.gitblit.manager.SessionManager; import com.gitblit.manager.UserManager; -import com.gitblit.servlet.BranchGraphServlet; -import com.gitblit.servlet.DownloadZipFilter; -import com.gitblit.servlet.DownloadZipServlet; -import com.gitblit.servlet.EnforceAuthenticationFilter; -import com.gitblit.servlet.FederationServlet; -import com.gitblit.servlet.GitFilter; -import com.gitblit.servlet.LogoServlet; -import com.gitblit.servlet.PagesFilter; -import com.gitblit.servlet.PagesServlet; -import com.gitblit.servlet.RobotsTxtServlet; -import com.gitblit.servlet.RpcFilter; -import com.gitblit.servlet.RpcServlet; -import com.gitblit.servlet.SparkleShareInviteServlet; -import com.gitblit.servlet.SyndicationFilter; -import com.gitblit.servlet.SyndicationServlet; +import com.gitblit.transport.ssh.FileKeyManager; +import com.gitblit.transport.ssh.IPublicKeyManager; +import com.gitblit.transport.ssh.MemoryKeyManager; +import com.gitblit.transport.ssh.NullKeyManager; +import com.gitblit.utils.JSoupXssFilter; +import com.gitblit.utils.StringUtils; +import com.gitblit.utils.XssFilter; import com.gitblit.wicket.GitBlitWebApp; -import com.gitblit.wicket.GitblitWicketFilter; import dagger.Module; import dagger.Provides; @@ -69,40 +56,25 @@ library = true, injects = { IStoredSettings.class, + XssFilter.class, // core managers IRuntimeManager.class, + IPluginManager.class, INotificationManager.class, IUserManager.class, - ISessionManager.class, + IAuthenticationManager.class, + IPublicKeyManager.class, IRepositoryManager.class, IProjectManager.class, - IGitblitManager.class, IFederationManager.class, - IServicesManager.class, // the monolithic manager - Gitblit.class, + IGitblit.class, - // filters & servlets - GitServlet.class, - GitFilter.class, - PagesServlet.class, - PagesFilter.class, - RpcServlet.class, - RpcFilter.class, - DownloadZipServlet.class, - DownloadZipFilter.class, - SyndicationServlet.class, - SyndicationFilter.class, - FederationServlet.class, - SparkleShareInviteServlet.class, - BranchGraphServlet.class, - RobotsTxtServlet.class, - LogoServlet.class, - EnforceAuthenticationFilter.class, - GitblitWicketFilter.class - } + // the Gitblit Wicket app + GitBlitWebApp.class + } ) public class DaggerModule { @@ -110,33 +82,71 @@ return new FileSettings(); } - @Provides @Singleton IRuntimeManager provideRuntimeManager(IStoredSettings settings) { - return new RuntimeManager(settings); + @Provides @Singleton XssFilter provideXssFilter() { + return new JSoupXssFilter(); + } + + @Provides @Singleton IRuntimeManager provideRuntimeManager(IStoredSettings settings, XssFilter xssFilter) { + return new RuntimeManager(settings, xssFilter); + } + + @Provides @Singleton IPluginManager providePluginManager(IRuntimeManager runtimeManager) { + return new PluginManager(runtimeManager); } @Provides @Singleton INotificationManager provideNotificationManager(IStoredSettings settings) { return new NotificationManager(settings); } - @Provides @Singleton IUserManager provideUserManager(IRuntimeManager runtimeManager) { - return new UserManager(runtimeManager); + @Provides @Singleton IUserManager provideUserManager( + IRuntimeManager runtimeManager, + IPluginManager pluginManager) { + + return new UserManager(runtimeManager, pluginManager); } - @Provides @Singleton ISessionManager provideSessionManager( + @Provides @Singleton IAuthenticationManager provideAuthenticationManager( IRuntimeManager runtimeManager, IUserManager userManager) { - return new SessionManager( + return new AuthenticationManager( runtimeManager, userManager); } + @Provides @Singleton IPublicKeyManager providePublicKeyManager( + IStoredSettings settings, + IRuntimeManager runtimeManager) { + + String clazz = settings.getString(Keys.git.sshKeysManager, FileKeyManager.class.getName()); + if (StringUtils.isEmpty(clazz)) { + clazz = FileKeyManager.class.getName(); + } + if (FileKeyManager.class.getName().equals(clazz)) { + return new FileKeyManager(runtimeManager); + } else if (NullKeyManager.class.getName().equals(clazz)) { + return new NullKeyManager(); + } else if (MemoryKeyManager.class.getName().equals(clazz)) { + return new MemoryKeyManager(); + } else { + try { + Class<?> mgrClass = Class.forName(clazz); + return (IPublicKeyManager) mgrClass.newInstance(); + } catch (Exception e) { + + } + return null; + } + } + @Provides @Singleton IRepositoryManager provideRepositoryManager( IRuntimeManager runtimeManager, + IPluginManager pluginManager, IUserManager userManager) { return new RepositoryManager( runtimeManager, + pluginManager, userManager); } @@ -154,70 +164,59 @@ @Provides @Singleton IFederationManager provideFederationManager( IRuntimeManager runtimeManager, INotificationManager notificationManager, - IUserManager userManager, IRepositoryManager repositoryManager) { return new FederationManager( runtimeManager, notificationManager, - userManager, repositoryManager); } - @Provides @Singleton IGitblitManager provideGitblitManager( + @Provides @Singleton IGitblit provideGitblit( IRuntimeManager runtimeManager, - IUserManager userManager, - IRepositoryManager repositoryManager) { - - return new GitblitManager( - runtimeManager, - userManager, - repositoryManager); - } - - @Provides @Singleton Gitblit provideGitblit( - IRuntimeManager runtimeManager, + IPluginManager pluginManager, INotificationManager notificationManager, IUserManager userManager, - ISessionManager sessionManager, + IAuthenticationManager authenticationManager, + IPublicKeyManager publicKeyManager, IRepositoryManager repositoryManager, IProjectManager projectManager, - IGitblitManager gitblitManager, IFederationManager federationManager) { - return new Gitblit( + return new GitBlit( runtimeManager, + pluginManager, notificationManager, userManager, - sessionManager, + authenticationManager, + publicKeyManager, repositoryManager, projectManager, - gitblitManager, federationManager); } - @Provides @Singleton IServicesManager provideServicesManager(Gitblit gitblit) { - return new ServicesManager(gitblit); - } - - @Provides @Singleton WebApplication provideWebApplication( + @Provides @Singleton GitBlitWebApp provideWebApplication( IRuntimeManager runtimeManager, + IPluginManager pluginManager, INotificationManager notificationManager, IUserManager userManager, - ISessionManager sessionManager, + IAuthenticationManager authenticationManager, + IPublicKeyManager publicKeyManager, IRepositoryManager repositoryManager, IProjectManager projectManager, - IGitblitManager gitblitManager, - IFederationManager federationManager) { + IFederationManager federationManager, + IGitblit gitblit) { return new GitBlitWebApp( runtimeManager, + pluginManager, notificationManager, userManager, - sessionManager, + authenticationManager, + publicKeyManager, repositoryManager, projectManager, - gitblitManager, - federationManager); + federationManager, + gitblit); } } \ No newline at end of file -- Gitblit v1.9.1