From d65f712ea3d8941f4b9145c0630c30c20af80d13 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 11 Nov 2011 17:22:21 -0500 Subject: [PATCH] Documentation. Add javadoc and source jars to the gbapi download. --- src/com/gitblit/GitBlitServer.java | 39 +++++++++++++++++++++++++++++++-------- 1 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/com/gitblit/GitBlitServer.java b/src/com/gitblit/GitBlitServer.java index 92305fc..1b079de 100644 --- a/src/com/gitblit/GitBlitServer.java +++ b/src/com/gitblit/GitBlitServer.java @@ -65,7 +65,7 @@ private static Logger logger; - public static void main(String[] args) { + public static void main(String... args) { Params params = new Params(); JCommander jc = new JCommander(params); try { @@ -147,7 +147,7 @@ Connector httpConnector = createConnector(params.useNIO, params.port); String bindInterface = settings.getString(Keys.server.httpBindInterface, null); if (!StringUtils.isEmpty(bindInterface)) { - logger.warn(MessageFormat.format("Binding connector on port {0} to {1}", + logger.warn(MessageFormat.format("Binding connector on port {0,number,0} to {1}", params.port, bindInterface)); httpConnector.setHost(bindInterface); } @@ -170,13 +170,13 @@ params.useNIO, params.securePort); String bindInterface = settings.getString(Keys.server.httpsBindInterface, null); if (!StringUtils.isEmpty(bindInterface)) { - logger.warn(MessageFormat.format("Binding ssl connector on port {0} to {1}", + logger.warn(MessageFormat.format("Binding ssl connector on port {0,number,0} to {1}", params.securePort, bindInterface)); secureConnector.setHost(bindInterface); } if (params.securePort < 1024 && !isWindows()) { logger.warn("Gitblit needs to run with ROOT permissions for ports < 1024!"); - } + } connectors.add(secureConnector); } else { logger.warn("Failed to find or load Keystore?"); @@ -209,7 +209,7 @@ // Root WebApp Context WebAppContext rootContext = new WebAppContext(); - rootContext.setContextPath("/"); + rootContext.setContextPath(settings.getString(Keys.server.contextPath, "/")); rootContext.setServer(server); rootContext.setWar(location.toExternalForm()); rootContext.setTempDirectory(tempDir); @@ -237,7 +237,7 @@ // Setup the GitBlit context GitBlit gitblit = GitBlit.self(); - gitblit.configureContext(settings); + gitblit.configureContext(settings, true); rootContext.addEventListener(gitblit); try { @@ -288,6 +288,9 @@ /** * Creates an https connector. * + * SSL renegotiation will be enabled if the JVM is 1.6.0_22 or later. + * oracle.com/technetwork/java/javase/documentation/tlsreadme2-176330.html + * * @param keystore * @param password * @param useNIO @@ -308,14 +311,31 @@ SslSocketConnector ssl = new SslSocketConnector(); connector = ssl; } - connector.setAllowRenegotiate(false); + // disable renegotiation unless this is a patched JVM + boolean allowRenegotiation = false; + String v = System.getProperty("java.version"); + if (v.startsWith("1.7")) { + allowRenegotiation = true; + } else if (v.startsWith("1.6")) { + // 1.6.0_22 was first release with RFC-5746 implemented fix. + if (v.indexOf('_') > -1) { + String b = v.substring(v.indexOf('_') + 1); + if (Integer.parseInt(b) >= 22) { + allowRenegotiation = true; + } + } + } + if (allowRenegotiation) { + logger.info(" allowing SSL renegotiation on Java " + v); + connector.setAllowRenegotiate(allowRenegotiation); + } connector.setKeystore(keystore.getAbsolutePath()); connector.setPassword(password); connector.setPort(port); connector.setMaxIdleTime(30000); return connector; } - + /** * Tests to see if the operating system is Windows. * @@ -376,6 +396,9 @@ } } + /** + * JCommander Parameters class for GitBlitServer. + */ @Parameters(separators = " ") private static class Params { -- Gitblit v1.9.1