James Moger
2011-11-18 309c55b5a9670e7c327ad8d4e5d94b8af840d00f
src/com/gitblit/GitBlitServer.java
@@ -133,7 +133,20 @@
      logger = LoggerFactory.getLogger(GitBlitServer.class);
      logger.info(Constants.BORDER);
      logger.info(Constants.getGitBlitVersion());
      logger.info("            _____  _  _    _      _  _  _");
      logger.info("           |  __ \\(_)| |  | |    | |(_)| |");
      logger.info("           | |  \\/ _ | |_ | |__  | | _ | |_");
      logger.info("           | | __ | || __|| '_ \\ | || || __|");
      logger.info("           | |_\\ \\| || |_ | |_) || || || |_");
      logger.info("            \\____/|_| \\__||_.__/ |_||_| \\__|");
      int spacing = (Constants.BORDER.length() - Constants.getGitBlitVersion().length()) / 2;
      StringBuilder sb = new StringBuilder();
      while (spacing > 0) {
         spacing--;
         sb.append(' ');
      }
      logger.info(sb.toString() + Constants.getGitBlitVersion());
      logger.info("");
      logger.info(Constants.BORDER);
      String osname = System.getProperty("os.name");
@@ -147,7 +160,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,8 +183,9 @@
                  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}",
                     params.securePort, bindInterface));
               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()) {
@@ -209,7 +223,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);
@@ -288,6 +302,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,7 +325,24 @@
         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);