@Override public void handle(Exception exception, RouteContext routeContext) { StatusCodeException statusCodeException = (StatusCodeException) exception; routeContext.setLocal("message", statusCodeException.getMessage()); errorHandler.handle(statusCodeException.getStatusCode(), routeContext); } }
@Override public void init() throws Exception { setSecurityManager(env.getWebSecurityManager()); FilterChainResolver resolver = env.getFilterChainResolver(); if (resolver != null) { setFilterChainResolver(resolver); } errorHandler.setExceptionHandler(AuthenticationException.class, (exception, ctx) -> { ctx.setLocal("message", exception.getMessage()); errorHandler.handle(401, ctx); }); errorHandler.setExceptionHandler(AuthorizationException.class, (exception, ctx) -> { ctx.setLocal("message", exception.getMessage()); errorHandler.handle(403, ctx); }); }
private void initializeApplication() { // hook-up the Metrics dispatch listener MetricsDispatchListener metricsDispatchListener = new MetricsDispatchListener(metricRegistry); application.getRoutePreDispatchListeners().add(metricsDispatchListener); application.getRoutePostDispatchListeners().add(metricsDispatchListener); // set the RedirectException handler application.getErrorHandler().setExceptionHandler(RedirectException.class, (exception, ctx) -> { RedirectException redirectException = (RedirectException) exception; if (!Strings.isNullOrEmpty(redirectException.getSessionUrlAttribute())) { String requestUri = ctx.getRequest().getApplicationUriWithQuery(); ctx.setSession(redirectException.getSessionUrlAttribute(), requestUri); } ctx.redirect(redirectException.getPath()); }); // set the StatusCodeException handler application.getErrorHandler().setExceptionHandler(StatusCodeException.class, (exception, ctx) -> { StatusCodeException statusCodeException = (StatusCodeException) exception; ctx.setLocal("message", statusCodeException.getMessage()); application.getErrorHandler().handle(statusCodeException.getStatusCode(), ctx); }); }
private void initializeApplication() { // hook-up the Metrics dispatch listener MetricsDispatchListener metricsDispatchListener = new MetricsDispatchListener(metricRegistry); application.getRoutePreDispatchListeners().add(metricsDispatchListener); application.getRoutePostDispatchListeners().add(metricsDispatchListener); // set the RedirectException handler application.getErrorHandler().setExceptionHandler(RedirectException.class, (exception, ctx) -> { RedirectException redirectException = (RedirectException) exception; if (!Strings.isNullOrEmpty(redirectException.getSessionUrlAttribute())) { String requestUri = ctx.getRequest().getApplicationUriWithQuery(); ctx.setSession(redirectException.getSessionUrlAttribute(), requestUri); } ctx.redirect(redirectException.getPath()); }); // set the StatusCodeException handler application.getErrorHandler().setExceptionHandler(StatusCodeException.class, (exception, ctx) -> { StatusCodeException statusCodeException = (StatusCodeException) exception; ctx.setLocal("message", statusCodeException.getMessage()); application.getErrorHandler().handle(statusCodeException.getStatusCode(), ctx); }); }
errorHandler.handle(HttpServletResponse.SC_NOT_FOUND, routeContext); ROUTE_CONTEXT_THREAD_LOCAL.remove(); log.debug("Returned status code {} for {} '{}' (IGNORED)", response.getStatus(), requestMethod, requestPath); } else { errorHandler.handle(HttpConstants.StatusCode.NOT_FOUND, routeContext); errorHandler.handle(response.getStatus(), routeContext); } else { response.commit(); errorHandler.handle(e, routeContext); } finally { routeContext.runFinallyRoutes();
protected void doFilterInternal(ServletRequest servletRequest, ServletResponse servletResponse, final FilterChain chain) throws ServletException, IOException { try { super.doFilterInternal(servletRequest, servletResponse, chain); } catch (Exception exception) { Exception root = (Exception) Throwables.getRootCause(exception); Request request = new Request((HttpServletRequest) servletRequest, application); Response response = new Response((HttpServletResponse) servletResponse, application); Context routeContext = new Context(application, request, response, Collections.emptyList()); errorHandler.handle(root, routeContext); } } }