From 22fc5e48cbe050d8485f78f6165b59e4085eaeef Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 25 Jun 2011 17:10:59 -0400 Subject: [PATCH] Moved Build classes to their own package --- src/com/gitblit/GitBlitServer.java | 126 +++++------------------------------------ 1 files changed, 16 insertions(+), 110 deletions(-) diff --git a/src/com/gitblit/GitBlitServer.java b/src/com/gitblit/GitBlitServer.java index 416c47a..02cc54a 100644 --- a/src/com/gitblit/GitBlitServer.java +++ b/src/com/gitblit/GitBlitServer.java @@ -30,17 +30,7 @@ import java.util.ArrayList; import java.util.List; -import org.apache.log4j.ConsoleAppender; -import org.apache.log4j.PatternLayout; -import org.apache.wicket.protocol.http.ContextParamWebApplicationFactory; -import org.apache.wicket.protocol.http.WicketFilter; -import org.eclipse.jetty.http.security.Constraint; -import org.eclipse.jetty.security.ConstraintMapping; -import org.eclipse.jetty.security.ConstraintSecurityHandler; -import org.eclipse.jetty.security.LoginService; -import org.eclipse.jetty.security.authentication.BasicAuthenticator; import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.bio.SocketConnector; import org.eclipse.jetty.server.nio.SelectChannelConnector; @@ -48,9 +38,6 @@ import org.eclipse.jetty.server.ssl.SslConnector; import org.eclipse.jetty.server.ssl.SslSelectChannelConnector; import org.eclipse.jetty.server.ssl.SslSocketConnector; -import org.eclipse.jetty.servlet.FilterHolder; -import org.eclipse.jetty.servlet.FilterMapping; -import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.webapp.WebAppContext; import org.slf4j.Logger; @@ -61,7 +48,6 @@ import com.beust.jcommander.ParameterException; import com.beust.jcommander.Parameters; import com.gitblit.utils.StringUtils; -import com.gitblit.wicket.GitBlitWebApp; public class GitBlitServer { @@ -125,27 +111,7 @@ * Start Server. */ private static void start(Params params) { - FileSettings settings = params.FILESETTINGS; - String pattern = settings.getString(Keys.server.log4jPattern, - "%-5p %d{MM-dd HH:mm:ss.SSS} %-20.20c{1} %m%n"); - - // allow os override of logging pattern - String os = System.getProperty("os.name").toLowerCase(); - if (os.indexOf("windows") > -1) { - String winPattern = settings.getString(Keys.server.log4jPattern_windows, pattern); - if (!StringUtils.isEmpty(winPattern)) { - pattern = winPattern; - } - } else if (os.indexOf("linux") > -1) { - String linuxPattern = settings.getString(Keys.server.log4jPattern_linux, pattern); - if (!StringUtils.isEmpty(linuxPattern)) { - pattern = linuxPattern; - } - } - - PatternLayout layout = new PatternLayout(pattern); - org.apache.log4j.Logger rootLogger = org.apache.log4j.Logger.getRootLogger(); - rootLogger.addAppender(new ConsoleAppender(layout)); + FileSettings settings = Params.FILESETTINGS; logger = LoggerFactory.getLogger(GitBlitServer.class); logger.info(Constants.BORDER); @@ -228,79 +194,19 @@ sessionManager.setSecureCookies(params.port <= 0 && params.securePort > 0); rootContext.getSessionHandler().setSessionManager(sessionManager); - // Wicket Filter - String wicketPathSpec = "/*"; - FilterHolder wicketFilter = new FilterHolder(WicketFilter.class); - wicketFilter.setInitParameter(ContextParamWebApplicationFactory.APP_CLASS_PARAM, - GitBlitWebApp.class.getName()); - wicketFilter.setInitParameter(WicketFilter.FILTER_MAPPING_PARAM, wicketPathSpec); - wicketFilter.setInitParameter(WicketFilter.IGNORE_PATHS_PARAM, "git/"); - rootContext.addFilter(wicketFilter, wicketPathSpec, FilterMapping.DEFAULT); - - // Zip Servlet - rootContext.addServlet(DownloadZipServlet.class, Constants.ZIP_SERVLET_PATH + "*"); - - // Git Servlet - ServletHolder gitServlet = null; - String gitServletPathSpec = Constants.GIT_SERVLET_PATH + "*"; - if (settings.getBoolean(Keys.git.enableGitServlet, true)) { - gitServlet = rootContext.addServlet(GitBlitServlet.class, gitServletPathSpec); - gitServlet.setInitParameter("base-path", params.repositoriesFolder); - gitServlet.setInitParameter("export-all", - settings.getBoolean(Keys.git.exportAll, true) ? "1" : "0"); + // Ensure there is a defined User Service + String realmUsers = params.userService; + if (StringUtils.isEmpty(realmUsers)) { + logger.error(MessageFormat.format("PLEASE SPECIFY {0}!!", Keys.realm.userService)); + return; } - // Login Service - LoginService loginService = null; - String realmUsers = params.realmFile; - if (!StringUtils.isEmpty(realmUsers)) { - File realmFile = new File(realmUsers); - if (realmFile.exists()) { - logger.info("Setting up login service from " + realmUsers); - JettyLoginService jettyLoginService = new JettyLoginService(realmFile); - GitBlit.self().setLoginService(jettyLoginService); - loginService = jettyLoginService; - } - } + // Override settings + settings.overrideSetting(Keys.realm.userService, params.userService); + settings.overrideSetting(Keys.git.repositoriesFolder, params.repositoriesFolder); - // Determine what handler to use - Handler handler; - if (gitServlet != null) { - if (loginService != null) { - // Authenticate Clone/Push - logger.info("Setting up authenticated git servlet clone/push access"); - - Constraint constraint = new Constraint(); - constraint.setAuthenticate(true); - constraint.setRoles(new String[] { "*" }); - - ConstraintMapping mapping = new ConstraintMapping(); - mapping.setPathSpec(gitServletPathSpec); - mapping.setConstraint(constraint); - - ConstraintSecurityHandler security = new ConstraintSecurityHandler(); - security.addConstraintMapping(mapping); - security.setAuthenticator(new BasicAuthenticator()); - security.setLoginService(loginService); - security.setStrict(false); - - security.setHandler(rootContext); - - handler = security; - } else { - // Anonymous Pull/Push - logger.info("Setting up anonymous git servlet pull/push access"); - handler = rootContext; - } - } else { - logger.info("Git servlet clone/push disabled"); - handler = rootContext; - } - - logger.info("Git repositories folder " + new File(params.repositoriesFolder).getAbsolutePath()); - // Set the server's contexts - server.setHandler(handler); + server.setHandler(rootContext); // Setup the GitBlit context GitBlit gitblit = GitBlit.self(); @@ -384,7 +290,7 @@ private final ServerSocket socket; private final Server server; - + private final Logger logger = LoggerFactory.getLogger(ShutdownMonitorThread.class); public ShutdownMonitorThread(Server server, Params params) { @@ -424,8 +330,8 @@ @Parameters(separators = " ") private static class Params { - - private static final FileSettings FILESETTINGS = new FileSettings(); + + private static final FileSettings FILESETTINGS = new FileSettings(Constants.PROPERTIES_FILE); /* * Server parameters @@ -436,7 +342,7 @@ @Parameter(names = { "--stop" }, description = "Stop Server") public Boolean stop = false; - @Parameter(names = { "--tempFolder" }, description = "Server temp folder") + @Parameter(names = { "--tempFolder" }, description = "Folder for server to extract built-in webapp") public String temp = FILESETTINGS.getString(Keys.server.tempFolder, "temp"); /* @@ -449,8 +355,8 @@ /* * Authentication Parameters */ - @Parameter(names = { "--realmFile" }, description = "Users Realm Hash File") - public String realmFile = FILESETTINGS.getString(Keys.realm.realmFile, "users.properties"); + @Parameter(names = { "--userService" }, description = "Authentication and Authorization Service (filename or fully qualified classname)") + public String userService = FILESETTINGS.getString(Keys.realm.userService, "users.properties"); /* * JETTY Parameters -- Gitblit v1.9.1