From b83a0ba903b56562751963c106b4c20352c26087 Mon Sep 17 00:00:00 2001
From: Roberto Sánchez <roberto.sanchez@curisit.net>
Date: Tue, 21 Jan 2014 10:43:29 +0000
Subject: [PATCH] #396 feature - Refactoring error management

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

diff --git a/securis/src/main/java/net/curisit/securis/MainApp.java b/securis/src/main/java/net/curisit/securis/MainApp.java
index bf2388b..deb8cab 100644
--- a/securis/src/main/java/net/curisit/securis/MainApp.java
+++ b/securis/src/main/java/net/curisit/securis/MainApp.java
@@ -5,10 +5,6 @@
 
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
 
 import net.curisit.securis.ioc.RequestsModule;
 import net.curisit.securis.ioc.SecurisModule;
@@ -17,6 +13,7 @@
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 import org.eclipse.jetty.server.handler.ResourceHandler;
+import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
 import org.eclipse.jetty.servlet.FilterHolder;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
@@ -35,7 +32,7 @@
 
 public class MainApp {
 
-	private static final Logger log = LoggerFactory.getLogger(MainApp.class);
+	static final Logger log = LoggerFactory.getLogger(MainApp.class);
 
 	private static Server server;
 	private static Injector injector = null;
@@ -74,7 +71,7 @@
 
 		context.setInitParameter("resteasy.role.based.security", "true");
 		context.setInitParameter("resteasy.providers", DefaultExceptionHandler.class.getName());
-		context.addFilter(new FilterHolder(injector.getInstance(AuthFilter.class)), "/*", null);
+		// context.addFilter(new FilterHolder(injector.getInstance(AuthFilter.class)), "/*", null);
 		context.addFilter(new FilterHolder(injector.getInstance(PersistFilter.class)), "/*", null);
 		ServletHolder sh = new ServletHolder(HttpServletDispatcher.class);
 		sh.setName("resteasy");
@@ -86,16 +83,14 @@
 			{ "/main.html" });
 		context.setHandler(staticResources);
 
-		// ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
-		// context.setErrorHandler(errorHandler);
+		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());
 		ContextHandlerCollection contexts = new ContextHandlerCollection();
 
@@ -107,27 +102,6 @@
 		server.start();
 		server.join();
 		log.info("Started server in: http://127.0.0.1:9997/");
-	}
-
-	@Provider
-	public static class DefaultExceptionHandler implements ExceptionMapper<Exception> {
-
-		public DefaultExceptionHandler() {
-			log.info("Creating DefaultExceptionHandler ");
-		}
-
-		@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>");
-			response.append("<status>ERROR</status>");
-			response.append("<message>" + e.getMessage() + "</message>");
-			response.append("</response>");
-			return Response.serverError().entity(response.toString()).type(MediaType.APPLICATION_XML).build();
-		}
 	}
 
 }

--
Gitblit v1.3.2