@Override public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { HttpServletRequestWrapper modifiedRequest = new HttpServletRequestWrapper(request) { // Prevent NOT_MODIFIED_SINCE 304 response private static final long WAS_MODIFIED = -1; @Override public long getDateHeader(String name) { HttpServletRequest request = (HttpServletRequest) getRequest(); if (HttpHeaders.IF_MODIFIED_SINCE.equals(name)) { return WAS_MODIFIED; } return request.getDateHeader(name); }; }; HttpServletResponseWrapper modifiedResponce = new HttpServletResponseWrapper(response) { // Prevent "if-modified-since" headers handling @Override public void setDateHeader(String name, long date) {} }; super.handle(target, baseRequest, modifiedRequest, modifiedResponce); }
@Override public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { final String suffix = RequestPath.suffix(target); final String path = path(suffix); if (!paths.contains(path)) { if (!whitelist.contains(suffix)) return; if (!"GET".equals(baseRequest.getMethod())) baseRequest.setMethod(HttpMethod.GET, HttpMethod.GET.toString()); super.handle(target, baseRequest, request, allowCrossOrigin(response)); } else { baseRequest .getContext() .getContext(path) .getRequestDispatcher(target) .forward(request, allowCrossOrigin(response)); } }