rsanchez
2014-09-25 b77838d1005c45740968816c70088dff2ad655d3
securis/src/main/java/net/curisit/securis/MainApp.java
....@@ -1,6 +1,7 @@
11 package net.curisit.securis;
22
33 import java.net.URI;
4
+import java.security.KeyStore;
45 import java.util.Properties;
56
67 import javax.inject.Inject;
....@@ -11,8 +12,14 @@
1112
1213 import org.apache.logging.log4j.LogManager;
1314 import org.apache.logging.log4j.Logger;
15
+import org.eclipse.jetty.http.HttpVersion;
1416 import org.eclipse.jetty.server.Handler;
17
+import org.eclipse.jetty.server.HttpConfiguration;
18
+import org.eclipse.jetty.server.HttpConnectionFactory;
19
+import org.eclipse.jetty.server.SecureRequestCustomizer;
1520 import org.eclipse.jetty.server.Server;
21
+import org.eclipse.jetty.server.ServerConnector;
22
+import org.eclipse.jetty.server.SslConnectionFactory;
1623 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
1724 import org.eclipse.jetty.server.handler.ResourceHandler;
1825 import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
....@@ -20,6 +27,8 @@
2027 import org.eclipse.jetty.servlet.ServletContextHandler;
2128 import org.eclipse.jetty.servlet.ServletHolder;
2229 import org.eclipse.jetty.util.resource.Resource;
30
+import org.eclipse.jetty.util.ssl.SslContextFactory;
31
+import org.eclipse.jetty.util.thread.QueuedThreadPool;
2332 import org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener;
2433 import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
2534
....@@ -29,6 +38,7 @@
2938 import com.google.inject.name.Names;
3039 import com.google.inject.persist.PersistFilter;
3140 import com.google.inject.persist.jpa.JpaPersistModule;
41
+import com.itextpdf.text.pdf.security.KeyStoreUtil;
3242
3343 public class MainApp {
3444
....@@ -63,6 +73,9 @@
6373 private static void startServer(URI uri) throws Exception {
6474 System.out.println("Starting jetty...");
6575
76
+ QueuedThreadPool threadPool = new QueuedThreadPool();
77
+ threadPool.setMaxThreads(50);
78
+
6679 server = new Server(9997);
6780 ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
6881 context.setContextPath("/");
....@@ -90,10 +103,40 @@
90103 contexts.setHandlers(new Handler[] {
91104 staticResources, context
92105 });
106
+
107
+ HttpConfiguration http_config = new HttpConfiguration();
108
+ http_config.setSecureScheme("https");
109
+ http_config.setSecurePort(8443);
110
+ http_config.setOutputBufferSize(32768);
111
+ http_config.setSendServerVersion(true);
112
+ http_config.setSendDateHeader(false);
113
+
114
+
115
+ HttpConfiguration https_config = new HttpConfiguration(http_config);
116
+ https_config.addCustomizer(new SecureRequestCustomizer());
117
+
118
+ SslContextFactory sslContextFactory = new SslContextFactory();
119
+ sslContextFactory.setKeyStorePath("/Users/rob/.ssh/keys/securis.pkcs12");
120
+ sslContextFactory.setKeyStoreType("PKCS12");
121
+ sslContextFactory.setKeyStorePassword("curist3c");
122
+ //sslContextFactory.setCertAlias("1");
123
+// sslContextFactory.setKeyManagerPassword("curist3c");
124
+// sslContextFactory.setTrustStorePath("/Users/rob/.ssh/keys/keystore");
125
+// sslContextFactory.setTrustStorePassword("curist3c");
126
+ sslContextFactory.checkKeyStore();
127
+ sslContextFactory.setNeedClientAuth(false);
128
+ LOG.info("Protocol: {}", sslContextFactory.getProtocol());
129
+
130
+ ServerConnector sslConnector = new ServerConnector(server, new SslConnectionFactory(sslContextFactory,HttpVersion.HTTP_1_1.asString()), new HttpConnectionFactory(https_config));
131
+ sslConnector.setPort(8443);
132
+ sslConnector.setHost("securis.curistec.com");
133
+ server.addConnector( sslConnector );
93134
94135 server.setHandler(context);
136
+ server.setStopAtShutdown(true);
95137 server.start();
96138 server.join();
139
+
97140 LOG.info("Started server in: http://127.0.0.1:9997/");
98141 }
99142