]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/Launcher.java
Merge branch 'issuePeriod'
[gigi.git] / src / org / cacert / gigi / Launcher.java
index c2e11286a07414d6894e0d91b505c1184a2d84af..25bc3ce6da505db2dbb6d589c0652fbede0a4f08 100644 (file)
@@ -2,9 +2,15 @@ package org.cacert.gigi;
 
 import java.io.IOException;
 import java.security.GeneralSecurityException;
+import java.security.Key;
 import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.Certificate;
 import java.util.List;
 import java.util.Properties;
+import java.util.TimeZone;
 
 import javax.net.ssl.ExtendedSSLSession;
 import javax.net.ssl.SNIHostName;
@@ -14,6 +20,7 @@ import javax.net.ssl.SSLParameters;
 import javax.net.ssl.SSLSession;
 
 import org.cacert.gigi.api.GigiAPI;
+import org.cacert.gigi.email.EmailProvider;
 import org.cacert.gigi.natives.SetUID;
 import org.cacert.gigi.util.CipherInfo;
 import org.cacert.gigi.util.ServerConstants;
@@ -40,8 +47,10 @@ import org.eclipse.jetty.util.ssl.SslContextFactory;
 public class Launcher {
 
     public static void main(String[] args) throws Exception {
+        TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
         GigiConfig conf = GigiConfig.parse(System.in);
         ServerConstants.init(conf.getMainProps());
+        initEmails(conf);
 
         Server s = new Server();
         // === SSL HTTP Configuration ===
@@ -55,6 +64,7 @@ public class Launcher {
         ServerConnector connector = new ServerConnector(s, createConnectionFactory(conf), new HttpConnectionFactory(https_config));
         connector.setHost(conf.getMainProps().getProperty("host"));
         connector.setPort(Integer.parseInt(conf.getMainProps().getProperty("port")));
+        connector.setAcceptQueueSize(100);
         s.setConnectors(new Connector[] {
             connector
         });
@@ -73,6 +83,13 @@ public class Launcher {
         }
     }
 
+    private static void initEmails(GigiConfig conf) throws GeneralSecurityException, IOException, KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
+        KeyStore privateStore = conf.getPrivateStore();
+        Certificate mail = privateStore.getCertificate("mail");
+        Key k = privateStore.getKey("mail", conf.getPrivateStorePw().toCharArray());
+        EmailProvider.initSystem(conf.getMainProps(), mail, k);
+    }
+
     private static SslConnectionFactory createConnectionFactory(GigiConfig conf) throws GeneralSecurityException, IOException {
         final SslContextFactory sslContextFactory = generateSSLContextFactory(conf, "www");
         final SslContextFactory secureContextFactory = generateSSLContextFactory(conf, "secure");