public final void init(final FilterConfig filterConfig) throws ServletException { init(new ServletConfig() { public String getServletName() { return filterConfig.getFilterName(); } public ServletContext getServletContext() { return filterConfig.getServletContext(); } public String getInitParameter(String name) { return filterConfig.getInitParameter(name); } public Enumeration<String> getInitParameterNames() { return filterConfig.getInitParameterNames(); } }); }
protected InputStream getResourceAsStream(String path) { InputStream is = ClassLoaderUtils.getResourceAsStream(path, AbstractHTTPServlet.class); if (is == null && getBus() != null) { ResourceManager rm = getBus().getExtension(ResourceManager.class); if (rm != null) { is = rm.resolveResource(path, InputStream.class); } } return is; }
protected void serveStaticContent(HttpServletRequest request, HttpServletResponse response, String pathInfo) throws ServletException { InputStream is = getResourceAsStream(pathInfo); if (is == null) { throw new ServletException("Static resource " + pathInfo + " is not available"); } try { int ind = pathInfo.lastIndexOf("."); if (ind != -1 && ind < pathInfo.length()) { String type = getStaticResourceContentType(pathInfo.substring(ind + 1)); if (type != null) { response.setContentType(type); } } String cacheControl = getServletConfig().getInitParameter(STATIC_CACHE_CONTROL); if (cacheControl != null) { response.setHeader("Cache-Control", cacheControl.trim()); } ServletOutputStream os = response.getOutputStream(); IOUtils.copyAndCloseInput(is, os); os.flush(); } catch (IOException ex) { throw new ServletException("Static resource " + pathInfo + " can not be written to the output stream"); } }
public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); staticResourcesList = parseListSequence(servletConfig.getInitParameter(STATIC_RESOURCES_PARAMETER)); staticWelcomeFile = servletConfig.getInitParameter(STATIC_WELCOME_FILE_PARAMETER); redirectList = parseListSequence(servletConfig.getInitParameter(REDIRECTS_PARAMETER)); redirectQueryCheck = Boolean.valueOf(servletConfig.getInitParameter(REDIRECT_QUERY_CHECK_PARAMETER)); dispatcherServletName = servletConfig.getInitParameter(REDIRECT_SERVLET_NAME_PARAMETER); dispatcherServletPath = servletConfig.getInitParameter(REDIRECT_SERVLET_PATH_PARAMETER); redirectAttributes = parseMapSequence(servletConfig.getInitParameter(REDIRECT_ATTRIBUTES_PARAMETER)); useXForwardedHeaders = Boolean.valueOf(servletConfig.getInitParameter(USE_X_FORWARDED_HEADERS_PARAMETER)); }
protected void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException { if ((dispatcherServletPath != null || dispatcherServletName != null) && (redirectList != null && matchPath(redirectList, request) || redirectList == null)) { // if no redirectList is provided then this servlet is redirecting only redirect(request, response, request.getPathInfo()); return; } boolean staticResourcesMatch = staticResourcesList != null && matchPath(staticResourcesList, request); boolean staticWelcomeFileMatch = staticWelcomeFile != null && (StringUtils.isEmpty(request.getPathInfo()) || "/".equals(request.getPathInfo())); if (staticResourcesMatch || staticWelcomeFileMatch) { serveStaticContent(request, response, staticWelcomeFileMatch ? staticWelcomeFile : request.getPathInfo()); return; } request = checkXForwardedHeaders(request); invoke(request, response); }
@Override protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handleRequest(request, response); }
protected void finalizeServletInit(ServletConfig servletConfig) throws ServletException { InputStream is = getResourceAsStream("/WEB-INF" + STATIC_RESOURCES_MAP_RESOURCE); if (is == null) { is = getResourceAsStream(STATIC_RESOURCES_MAP_RESOURCE); } if (is != null) { try { Properties props = new Properties(); props.load(is); for (String name : props.stringPropertyNames()) { staticContentTypes.put(name, props.getProperty(name)); } is.close(); } catch (IOException ex) { String message = new org.apache.cxf.common.i18n.Message("STATIC_RESOURCES_MAP_LOAD_FAILURE", BUNDLE).toString(); LOG.warning(message); } } }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ClassLoaderHolder origLoader = null; Bus origBus = null; if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) { try { if (loader != null) { origLoader = ClassLoaderUtils.setThreadContextClassloader(loader); } if (bus != null) { origBus = BusFactory.getAndSetThreadDefaultBus(bus); } HttpServletRequest httpRequest = (HttpServletRequest)request; if (controller.filter(new HttpServletRequestFilter(httpRequest, super.getServletName()), (HttpServletResponse)response)) { return; } } finally { if (origBus != bus) { BusFactory.setThreadDefaultBus(origBus); } if (origLoader != null) { origLoader.reset(); } } } chain.doFilter(request, response); } @Override
protected void redirect(HttpServletRequest request, HttpServletResponse response, String pathInfo) throws ServletException { boolean customServletPath = dispatcherServletPath != null; String theServletPath = customServletPath ? dispatcherServletPath : "/"; ServletContext sc = super.getServletContext(); RequestDispatcher rd = dispatcherServletName != null ? sc.getNamedDispatcher(dispatcherServletName) : sc.getRequestDispatcher((theServletPath + pathInfo).replace("//", "/")); if (rd == null) { String errorMessage = "No RequestDispatcher can be created for path " + pathInfo; if (dispatcherServletName != null) { errorMessage += ", dispatcher name: " + dispatcherServletName; } throw new ServletException(errorMessage); } try { for (Map.Entry<String, String> entry : redirectAttributes.entrySet()) { request.setAttribute(entry.getKey(), entry.getValue()); } HttpServletRequest servletRequest = new HttpServletRequestRedirectFilter(request, pathInfo, theServletPath, customServletPath); if (PropertyUtils.isTrue(getServletConfig().getInitParameter(REDIRECT_WITH_INCLUDE_PARAMETER))) { rd.include(servletRequest, response); } else { rd.forward(servletRequest, response); } } catch (Throwable ex) { throw new ServletException("RequestDispatcher for path " + pathInfo + " has failed", ex); } }
protected void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException { if ((dispatcherServletPath != null || dispatcherServletName != null) && (redirectList != null && matchPath(redirectList, request) || redirectList == null)) { // if no redirectList is provided then this servlet is redirecting only redirect(request, response, request.getPathInfo()); return; } boolean staticResourcesMatch = staticResourcesList != null && matchPath(staticResourcesList, request); boolean staticWelcomeFileMatch = staticWelcomeFile != null && (StringUtils.isEmpty(request.getPathInfo()) || "/".equals(request.getPathInfo())); if (staticResourcesMatch || staticWelcomeFileMatch) { serveStaticContent(request, response, staticWelcomeFileMatch ? staticWelcomeFile : request.getPathInfo()); return; } request = checkXForwardedHeaders(request); invoke(request, response); }
@Override protected void doHead(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handleRequest(request, response); }
public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); staticResourcesList = parseListSequence(servletConfig.getInitParameter(STATIC_RESOURCES_PARAMETER)); staticWelcomeFile = servletConfig.getInitParameter(STATIC_WELCOME_FILE_PARAMETER); redirectList = parseListSequence(servletConfig.getInitParameter(REDIRECTS_PARAMETER)); redirectQueryCheck = Boolean.valueOf(servletConfig.getInitParameter(REDIRECT_QUERY_CHECK_PARAMETER)); dispatcherServletName = servletConfig.getInitParameter(REDIRECT_SERVLET_NAME_PARAMETER); dispatcherServletPath = servletConfig.getInitParameter(REDIRECT_SERVLET_PATH_PARAMETER); redirectAttributes = parseMapSequence(servletConfig.getInitParameter(REDIRECT_ATTRIBUTES_PARAMETER)); useXForwardedHeaders = Boolean.valueOf(servletConfig.getInitParameter(USE_X_FORWARDED_HEADERS_PARAMETER)); }
protected void finalizeServletInit(ServletConfig servletConfig) throws ServletException { InputStream is = getResourceAsStream("/WEB-INF" + STATIC_RESOURCES_MAP_RESOURCE); if (is == null) { is = getResourceAsStream(STATIC_RESOURCES_MAP_RESOURCE); } if (is != null) { try { Properties props = new Properties(); props.load(is); for (String name : props.stringPropertyNames()) { staticContentTypes.put(name, props.getProperty(name)); } is.close(); } catch (IOException ex) { String message = new org.apache.cxf.common.i18n.Message("STATIC_RESOURCES_MAP_LOAD_FAILURE", BUNDLE).toString(); LOG.warning(message); } } }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ClassLoaderHolder origLoader = null; Bus origBus = null; if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) { try { if (loader != null) { origLoader = ClassLoaderUtils.setThreadContextClassloader(loader); } if (bus != null) { origBus = BusFactory.getAndSetThreadDefaultBus(bus); } HttpServletRequest httpRequest = (HttpServletRequest)request; if (controller.filter(new HttpServletRequestFilter(httpRequest, super.getServletName()), (HttpServletResponse)response)) { return; } } finally { if (origBus != bus) { BusFactory.setThreadDefaultBus(origBus); } if (origLoader != null) { origLoader.reset(); } } } chain.doFilter(request, response); } @Override
protected void redirect(HttpServletRequest request, HttpServletResponse response, String pathInfo) throws ServletException { boolean customServletPath = dispatcherServletPath != null; String theServletPath = customServletPath ? dispatcherServletPath : "/"; ServletContext sc = super.getServletContext(); RequestDispatcher rd = dispatcherServletName != null ? sc.getNamedDispatcher(dispatcherServletName) : sc.getRequestDispatcher((theServletPath + pathInfo).replace("//", "/")); if (rd == null) { String errorMessage = "No RequestDispatcher can be created for path " + pathInfo; if (dispatcherServletName != null) { errorMessage += ", dispatcher name: " + dispatcherServletName; } throw new ServletException(errorMessage); } try { for (Map.Entry<String, String> entry : redirectAttributes.entrySet()) { request.setAttribute(entry.getKey(), entry.getValue()); } HttpServletRequest servletRequest = new HttpServletRequestRedirectFilter(request, pathInfo, theServletPath, customServletPath); if (PropertyUtils.isTrue(getServletConfig().getInitParameter(REDIRECT_WITH_INCLUDE_PARAMETER))) { rd.include(servletRequest, response); } else { rd.forward(servletRequest, response); } } catch (Throwable ex) { throw new ServletException("RequestDispatcher for path " + pathInfo + " has failed", ex); } }
protected void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException { if ((dispatcherServletPath != null || dispatcherServletName != null) && (redirectList != null && matchPath(redirectList, request) || redirectList == null)) { // if no redirectList is provided then this servlet is redirecting only redirect(request, response, request.getPathInfo()); return; } boolean staticResourcesMatch = staticResourcesList != null && matchPath(staticResourcesList, request); boolean staticWelcomeFileMatch = staticWelcomeFile != null && (StringUtils.isEmpty(request.getPathInfo()) || request.getPathInfo().equals("/")); if (staticResourcesMatch || staticWelcomeFileMatch) { serveStaticContent(request, response, staticWelcomeFileMatch ? staticWelcomeFile : request.getPathInfo()); return; } invoke(request, response); }
@Override public void init(ServletConfig sc) throws ServletException { super.init(sc); if (this.bus == null && loadBus) { loadBus(sc); } if (this.bus != null) { loader = initClassLoader(); registerServletContextResolver(sc); if (destinationRegistry == null) { this.destinationRegistry = getDestinationRegistryFromBusOrDefault(sc.getInitParameter(TRANSPORT_ID)); } } this.controller = createServletController(sc); finalizeServletInit(sc); }
protected void serveStaticContent(HttpServletRequest request, HttpServletResponse response, String pathInfo) throws ServletException { InputStream is = getResourceAsStream(pathInfo); if (is == null) { throw new ServletException("Static resource " + pathInfo + " is not available"); } try { int ind = pathInfo.lastIndexOf("."); if (ind != -1 && ind < pathInfo.length()) { String type = getStaticResourceContentType(pathInfo.substring(ind + 1)); if (type != null) { response.setContentType(type); } } String cacheControl = getServletConfig().getInitParameter(STATIC_CACHE_CONTROL); if (cacheControl != null) { response.setHeader("Cache-Control", cacheControl.trim()); } ServletOutputStream os = response.getOutputStream(); IOUtils.copyAndCloseInput(is, os); os.flush(); } catch (IOException ex) { throw new ServletException("Static resource " + pathInfo + " can not be written to the output stream"); } }
@Override protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { handleRequest(request, response); }
public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); staticResourcesList = parseListSequence(servletConfig.getInitParameter(STATIC_RESOURCES_PARAMETER)); staticWelcomeFile = servletConfig.getInitParameter(STATIC_WELCOME_FILE_PARAMETER); redirectList = parseListSequence(servletConfig.getInitParameter(REDIRECTS_PARAMETER)); redirectQueryCheck = Boolean.valueOf(servletConfig.getInitParameter(REDIRECT_QUERY_CHECK_PARAMETER)); dispatcherServletName = servletConfig.getInitParameter(REDIRECT_SERVLET_NAME_PARAMETER); dispatcherServletPath = servletConfig.getInitParameter(REDIRECT_SERVLET_PATH_PARAMETER); redirectAttributes = parseMapSequence(servletConfig.getInitParameter(REDIRECT_ATTRIBUTES_PARAMETER)); }