package net.curisit.securis; import javax.ws.rs.ForbiddenException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.Provider; @Provider public class DefaultExceptionHandler implements ExceptionMapper { public static final String ERROR_MESSAGE_HEADER = "X-SECURIS-ERROR"; public DefaultExceptionHandler() { MainApp.log.info("Creating DefaultExceptionHandler "); } @Override public Response toResponse(Exception e) { // log.info("Creating DefaultExceptionHandler "); // e.printStackTrace(); if (e instanceof ForbiddenException) return Response.status(Status.UNAUTHORIZED).header(ERROR_MESSAGE_HEADER, "Unathorized access to the application").type(MediaType.APPLICATION_JSON).build(); return Response.serverError().header(ERROR_MESSAGE_HEADER, "Unexpected error: " + e.toString()).type(MediaType.APPLICATION_JSON).build(); } }