@Override public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse; // TODO test for redirect // no redirect; process the request // create Request, Response objects RequestResponseFactory requestResponseFactory = application.getRequestResponseFactory(); Response response = requestResponseFactory.createResponse(httpServletResponse); Request request = requestResponseFactory.createRequest(httpServletRequest, response); // create a URI to automatically decode the path URI uri = URI.create(httpServletRequest.getRequestURL().toString()); String requestUri = uri.getPath(); String requestPath = request.getPath(); log.trace("The relative path for '{}' is '{}'", requestUri, requestPath); // check for ignore path if (shouldIgnorePath(requestPath)) { log.debug("Ignoring request '{}'", requestPath); if (chain != null) { chain.doFilter(servletRequest, servletResponse); } return; } log.debug("Request {} '{}'", request.getMethod(), requestPath); // dispatch route(s) routeDispatcher.dispatch(request, response); }