aboutsummaryrefslogtreecommitdiff
path: root/juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java')
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/controllers/ErrorController.java49
1 files changed, 49 insertions, 0 deletions
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";
+ }
+}