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 "views/error"; } @ExceptionHandler(HttpForbiddenException.class) @ResponseStatus(value = HttpStatus.FORBIDDEN) public String forbidden() { return "views/error"; } @ExceptionHandler(HttpNotFoundException.class) @ResponseStatus(value = HttpStatus.NOT_FOUND) public String notFound() { return "views/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 "views/error"; } }