From e0312a3359d7d2e7fe3d7771ad8d896133a2e2fc Mon Sep 17 00:00:00 2001 From: Alexander Alexeev Date: Mon, 12 Dec 2016 20:58:56 +0700 Subject: error page --- .../com/juick/www/controllers/ErrorController.java | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java (limited to 'juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java') diff --git a/juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java b/juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java new file mode 100644 index 00000000..a3e697b4 --- /dev/null +++ b/juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java @@ -0,0 +1,49 @@ +package com.juick.www.controllers; + +import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpForbiddenException; +import com.juick.server.util.HttpNotFoundException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; + +/** + * Created by aalexeev on 12/12/16. + */ +@ControllerAdvice +public class ErrorController { + private static Logger logger = LoggerFactory.getLogger(ErrorController.class); + + @ExceptionHandler(HttpBadRequestException.class) + @ResponseStatus(value = HttpStatus.BAD_REQUEST) + public String badRequest() { + return "layout/error"; + } + + @ExceptionHandler(HttpForbiddenException.class) + @ResponseStatus(value = HttpStatus.FORBIDDEN) + public String forbidden() { + return "layout/error"; + } + + @ExceptionHandler(HttpNotFoundException.class) + @ResponseStatus(value = HttpStatus.NOT_FOUND) + public String notFound() { + return "layout/error"; + } + + @ExceptionHandler(Throwable.class) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public String exception(final Throwable throwable, final Model model) { + logger.error("Exception during execution of SpringSecurity application", throwable); + + String errorMessage = (throwable != null ? throwable.getMessage() : "Unknown error"); + model.addAttribute("errorMessage", errorMessage); + + return "layout/error"; + } +} -- cgit v1.2.3