Exemplo n.º 1
0
 /**
  * Parses filters and filter mappings out of web.xml.
  *
  * @param rootElement web.xml root element
  * @param webApp web app for web.xml
  */
 private static void parseFilters(final Element rootElement, final WebApp webApp) {
   final Element[] elements = getChildren(rootElement, "filter");
   if (elements != null && elements.length > 0) {
     for (Element element : elements) {
       final WebAppFilter filter = new WebAppFilter();
       filter.setFilterName(getTextContent(getChild(element, "filter-name")));
       filter.setFilterClass(getTextContent(getChild(element, "filter-class")));
       webApp.addFilter(filter);
       final Element[] initParamElements = getChildren(element, "init-param");
       if (initParamElements != null && initParamElements.length > 0) {
         for (Element initParamElement : initParamElements) {
           final WebAppInitParam initParam = new WebAppInitParam();
           initParam.setParamName(getTextContent(getChild(initParamElement, "param-name")));
           initParam.setParamValue(getTextContent(getChild(initParamElement, "param-value")));
           filter.addInitParam(initParam);
         }
       }
     }
   }
   final Element[] mappingElements = getChildren(rootElement, "filter-mapping");
   if (mappingElements != null && mappingElements.length > 0) {
     for (Element mappingElement : mappingElements) {
       // starting with servlet 2.5 url-patern / servlet-names can be
       // specified more times
       // for the earlier version only one entry will be returned
       final String filterName = getTextContent(getChild(mappingElement, "filter-name"));
       final Element[] urlPatternsElements = getChildren(mappingElement, "url-pattern");
       if (urlPatternsElements != null && urlPatternsElements.length > 0) {
         for (Element urlPatternElement : urlPatternsElements) {
           final WebAppFilterMapping filterMapping = new WebAppFilterMapping();
           filterMapping.setFilterName(filterName);
           filterMapping.setUrlPattern(getTextContent(urlPatternElement));
           webApp.addFilterMapping(filterMapping);
         }
       }
       final Element[] servletNamesElements = getChildren(mappingElement, "servlet-name");
       if (servletNamesElements != null && servletNamesElements.length > 0) {
         for (Element servletNameElement : servletNamesElements) {
           final WebAppFilterMapping filterMapping = new WebAppFilterMapping();
           filterMapping.setFilterName(filterName);
           filterMapping.setServletName(getTextContent(servletNameElement));
           webApp.addFilterMapping(filterMapping);
         }
       }
     }
   }
 }