From d7ee99d10fc17ca29511b2f1e551fcd1dd1c2c8e Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Mon, 23 Dec 2013 17:38:25 +0000
Subject: [PATCH] #333 feature - Added login and first main page design

---
 securis/src/main/java/net/curisit/securis/MainApp.java |   49 +++++++++++++++++++++++++++++++------------------
 1 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/MainApp.java b/securis/src/main/java/net/curisit/securis/MainApp.java
index b8ae3b1..2d81bbb 100644
--- a/securis/src/main/java/net/curisit/securis/MainApp.java
+++ b/securis/src/main/java/net/curisit/securis/MainApp.java
@@ -12,14 +12,16 @@
 import net.curisit.securis.ioc.RequestsModule;
 import net.curisit.securis.ioc.SecurisModule;
 
+import org.eclipse.jetty.server.Handler;
 import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
+import org.eclipse.jetty.server.handler.ContextHandlerCollection;
+import org.eclipse.jetty.server.handler.ResourceHandler;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.util.resource.Resource;
 import org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener;
 import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
-import org.jboss.resteasy.util.HttpResponseCodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,8 +54,7 @@
 
 	private static void startServer(URI uri) throws Exception {
 		System.out.println("Starting jetty...");
-		// ResourceConfig rc = new PackagesResourceConfig("net.curisit.securis.services", "org.codehaus.jackson.jaxrs");
-		// IoCComponentProviderFactory ioc = new GuiceComponentProviderFactory(rc, injector);
+
 		server = new Server(9997);
 		ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
 		context.setContextPath("/");
@@ -64,25 +65,35 @@
 		context.addFilter(new FilterHolder(injector.getInstance(AuthFilter.class)), "/*", null);
 
 		ServletHolder sh = new ServletHolder(HttpServletDispatcher.class);
-		// context.addServlet(DefaultServlet.class, "/*");
-		context.addServlet(sh, "/");
-		ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
-		context.setErrorHandler(errorHandler);
-		errorHandler.addErrorPage(HttpResponseCodes.SC_FORBIDDEN, "/login");
-		errorHandler.addErrorPage(HttpResponseCodes.SC_NOT_FOUND, "/");
-		errorHandler.addErrorPage(javax.ws.rs.NotFoundException.class, "/");
-		errorHandler.addErrorPage(javax.ws.rs.ForbiddenException.class, "/");
-		errorHandler.addErrorPage(javax.ws.rs.ForbiddenException.class.getCanonicalName(), "/");
-		errorHandler.addErrorPage(ErrorPageErrorHandler.GLOBAL_ERROR_PAGE, "/");
+		sh.setName("resteasy");
+		context.addServlet(sh, "/*");
 
+		ResourceHandler staticResources = new ResourceHandler();
+		staticResources.setBaseResource(Resource.newResource(MainApp.class.getResource("/static").toURI()));
+		staticResources.setWelcomeFiles(new String[]
+			{ "/login.html" });
+		context.setHandler(staticResources);
+
+		// ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
+		// context.setErrorHandler(errorHandler);
+		// errorHandler.addErrorPage(HttpResponseCodes.SC_FORBIDDEN, "/login");
+		// errorHandler.addErrorPage(HttpResponseCodes.SC_NOT_FOUND, "/");
+		// errorHandler.addErrorPage(javax.ws.rs.NotFoundException.class, "/");
+		// errorHandler.addErrorPage(javax.ws.rs.ForbiddenException.class, "/");
+		// errorHandler.addErrorPage(javax.ws.rs.ForbiddenException.class.getCanonicalName(), "/");
+		// errorHandler.addErrorPage(ErrorPageErrorHandler.GLOBAL_ERROR_PAGE, "/");
+		context.setWelcomeFiles(new String[]
+			{ "/index" });
 		log.info("Error Handlers: " + context.getErrorHandler());
-		server.setHandler(context);
+		ContextHandlerCollection contexts = new ContextHandlerCollection();
 
+		contexts.setHandlers(new Handler[]
+			{ staticResources, context });
+		// server.setHandler(contexts);
+
+		server.setHandler(context);
 		server.start();
 		server.join();
-		// rc.packages("net.curisit.securis.services", "org.codehaus.jackson.jaxrs");
-
-		// new CLStaticHttpHandler(new URLClassLoader(new URL[] {new URL("file:///home/username/staticfiles.jar")})), "/www")
 
 	}
 
@@ -98,6 +109,8 @@
 
 		@Override
 		public Response toResponse(Exception e) {
+			// log.info("Creating DefaultExceptionHandler ");
+			e.printStackTrace();
 			// For simplicity I am preparing error xml by hand.
 			// Ideally we should create an ErrorResponse class to hold the error info.
 			StringBuilder response = new StringBuilder("<response>");

--
Gitblit v1.3.2