private void getAllComponentClasses(TldMetaData metaData, Set<String> classes) { if (metaData.getValidator() != null) { classes.add(metaData.getValidator().getValidatorClass()); } if (metaData.getListeners() != null) for (ListenerMetaData listener : metaData.getListeners()) { classes.add(listener.getListenerClass()); } if (metaData.getTags() != null) for (TagMetaData tag : metaData.getTags()) { classes.add(tag.getTagClass()); } }
public WebIntegrationProcessor() { // create wbl listener INITIAL_LISTENER_METADATA = new ListenerMetaData(); INITIAL_LISTENER_METADATA.setListenerClass(WELD_INITIAL_LISTENER); TERMINAL_LISTENER_MEDATADA = new ListenerMetaData(); TERMINAL_LISTENER_MEDATADA.setListenerClass(WELD_TERMINAL_LISTENER); conversationFilterMetadata = new FilterMetaData(); conversationFilterMetadata.setFilterClass(CONVERSATION_FILTER_CLASS); conversationFilterMetadata.setFilterName(CONVERSATION_FILTER_NAME); conversationFilterMetadata.setAsyncSupported(true); CONVERSATION_FILTER_INITIALIZED.setParamName(ConversationFilter.CONVERSATION_FILTER_REGISTERED); CONVERSATION_FILTER_INITIALIZED.setParamValue(Boolean.TRUE.toString()); }
/** * Get the list of http methods that were not associated with an excluded or role based mapping of this url. * * @return the subset of http methods that should be unchecked */ public String[] getMissingMethods() { String[] httpMethods = {}; if (allMethods.size() == 0) { // There were no excluded or role based security-constraints httpMethods = WebResourceCollectionMetaData.ALL_HTTP_METHOD_NAMES; } else { httpMethods = WebResourceCollectionMetaData.getMissingHttpMethods(allMethods); } return httpMethods; }
WebMetaData metaData = new WebMetaData(); ServletsMetaData servlets = new ServletsMetaData(); List<ServletMappingMetaData> servletMappings = new ArrayList<ServletMappingMetaData>(); for (final AnnotationInstance annotation : webServletAnnotations) { ServletMetaData servlet = new ServletMetaData(); AnnotationTarget target = annotation.target(); if (!(target instanceof ClassInfo)) { servlet.setServletClass(classInfo.toString()); AnnotationValue nameValue = annotation.value("name"); if (nameValue == null || nameValue.asString().isEmpty()) { servlet.setName(classInfo.toString()); } else { servlet.setName(nameValue.asString()); servlet.setLoadOnStartupInt(loadOnStartup.asInt()); servlet.setAsyncSupported(asyncSupported.asBoolean()); servlet.setInitParam(initParams); (largeIconValue == null) ? "" : largeIconValue.asString()); if (descriptionGroup != null) { servlet.setDescriptionGroup(descriptionGroup); ServletMappingMetaData servletMapping = new ServletMappingMetaData(); servletMapping.setServletName(servlet.getName()); List<String> urlPatterns = new ArrayList<String>();
WebResourceCollectionsMetaData resourceCollectionsMetaData = secConstraint.getResourceCollections(); UserDataConstraintMetaData userDataConstraintMetaData = secConstraint.getUserDataConstraint(); if (secConstraint.isExcluded() || secConstraint.isUnchecked()) { List<String> httpMethods = new ArrayList<>(resourceCollectionMetaData.getHttpMethods()); List<String> ommisions = resourceCollectionMetaData.getHttpMethodOmissions(); if(httpMethods.isEmpty() && !ommisions.isEmpty()) { httpMethods.addAll(WebResourceCollectionMetaData.ALL_HTTP_METHODS); httpMethods.removeAll(ommisions); List<String> urlPatterns = resourceCollectionMetaData.getUrlPatterns(); for (String urlPattern : urlPatterns) { PatternInfo info = patternMap.get(urlPattern); info.descriptor=true; if (secConstraint.isExcluded()) { info.addExcludedMethods(httpMethods); if (secConstraint.isUnchecked() && httpMethods.isEmpty()) { info.isMissingAuthConstraint = true; } else { List<String> httpMethods = new ArrayList<>(resourceCollectionMetaData.getHttpMethods()); List<String> methodOmissions = resourceCollectionMetaData.getHttpMethodOmissions(); if(httpMethods.isEmpty() && !methodOmissions.isEmpty()) { httpMethods.addAll(WebResourceCollectionMetaData.ALL_HTTP_METHODS); httpMethods.removeAll(methodOmissions);
if(tldMetaData.getListeners() != null) { for (ListenerMetaData l : tldMetaData.getListeners()) { tagLibraryInfo.addListener(l.getListenerClass()); tagLibraryInfo.setTlibversion(tldMetaData.getTlibVersion()); if (tldMetaData.getJspVersion() == null) { tagLibraryInfo.setJspversion(tldMetaData.getVersion()); } else { tagLibraryInfo.setJspversion(tldMetaData.getJspVersion()); tagLibraryInfo.setShortname(tldMetaData.getShortName()); tagLibraryInfo.setUri(tldMetaData.getUri()); if (tldMetaData.getDescriptionGroup() != null) { tagLibraryInfo.setInfo(tldMetaData.getDescriptionGroup().getDescription()); if (tldMetaData.getValidator() != null) { TagLibraryValidatorInfo tagLibraryValidatorInfo = new TagLibraryValidatorInfo(); tagLibraryValidatorInfo.setValidatorClass(tldMetaData.getValidator().getValidatorClass()); if (tldMetaData.getValidator().getInitParams() != null) { for (ParamValueMetaData paramValueMetaData : tldMetaData.getValidator().getInitParams()) { tagLibraryValidatorInfo.addInitParam(paramValueMetaData.getParamName(), paramValueMetaData.getParamValue()); if (tldMetaData.getTags() != null) { for (TagMetaData tagMetaData : tldMetaData.getTags()) { TagInfo tagInfo = new TagInfo(); tagInfo.setTagName(tagMetaData.getName()); tagInfo.setTagClassName(tagMetaData.getTagClass()); tagInfo.setTagExtraInfo(tagMetaData.getTeiClass()); if (tagMetaData.getBodyContent() != null) {
WebMetaData specMetaData = warMetaData.getWebMetaData(); if (specMetaData != null) { isComplete = specMetaData.isMetadataComplete(); webFragments.put(jarName, fragmentMetaData); WebOrdering webOrdering = new WebOrdering(); webOrdering.setName(fragmentMetaData.getName()); webOrdering.setJar(jarName); jarsWithoutFragmentsSet.remove(jarName); if (fragmentMetaData.getOrdering() != null) { if (fragmentMetaData.getOrdering().getAfter() != null) { for (OrderingElementMetaData orderingElementMetaData : fragmentMetaData.getOrdering().getAfter() .getOrdering()) { if (orderingElementMetaData.isOthers()) { webOrdering.setAfterOthers(true); } else { webOrdering.addAfter(orderingElementMetaData.getName()); if (fragmentMetaData.getOrdering().getBefore() != null) { for (OrderingElementMetaData orderingElementMetaData : fragmentMetaData.getOrdering().getBefore() .getOrdering()) { if (orderingElementMetaData.isOthers()) { webOrdering.setBeforeOthers(true); } else { webOrdering.addBefore(orderingElementMetaData.getName()); absoluteOrderingMetaData = specMetaData.getAbsoluteOrdering(); for (OrderingElementMetaData orderingElementMetaData : absoluteOrderingMetaData.getOrdering()) {
if (constraints != null) { for (SecurityConstraintMetaData constraint : constraints) { WebResourceCollectionsMetaData resourceCollectionsMetaData = constraint.getResourceCollections(); if (resourceCollectionsMetaData != null) { for (WebResourceCollectionMetaData resourceCollectionMetaData : resourceCollectionsMetaData) { List<String> urlPatterns = resourceCollectionMetaData.getUrlPatterns(); for (String url : urlPatterns) { int type = getPatternType(url); List<String> list = servletMappingMap.get(mapping.getServletName()); if(list == null) { servletMappingMap.put(mapping.getServletName(), list = new ArrayList<>()); list.addAll(mapping.getUrlPatterns());
while (iterator.hasNext()) { final ListenerMetaData listener = iterator.next(); if (listener.getListenerClass().trim().equals(WELD_SERVLET_LISTENER)) { WeldLogger.DEPLOYMENT_LOGGER.debugf("Removing weld servlet listener %s from web config, as it is not needed in EE6 environments", WELD_SERVLET_LISTENER); iterator.remove(); if (CONVERSATION_FILTER_NAME.equals(mapping.getFilterName())) { filterMappingFound = true; break; webMetaData.setFilters(new FiltersMetaData()); if (CONVERSATION_FILTER_CLASS.equals(filter.getFilterClass())) { filterFound = true; break; webMetaData.getFilters().add(conversationFilterMetadata); registerAsComponent(CONVERSATION_FILTER_CLASS, deploymentUnit); webMetaData.getContextParams().add(CONVERSATION_FILTER_INITIALIZED);
private void getAllComponentClasses(JBossWebMetaData metaData, Set<String> classes) { if (metaData.getServlets() != null) for (ServletMetaData servlet : metaData.getServlets()) { if (servlet.getServletClass() != null) { classes.add(servlet.getServletClass()); } } if (metaData.getFilters() != null) for (FilterMetaData filter : metaData.getFilters()) { classes.add(filter.getFilterClass()); } if (metaData.getListeners() != null) for (ListenerMetaData listener : metaData.getListeners()) { classes.add(listener.getListenerClass()); } }
if (config != null) { List<JspPropertyGroupMetaData> groups = config.getPropertyGroups(); if (groups != null) { for (JspPropertyGroupMetaData group : groups) { org.apache.jasper.deploy.JspPropertyGroup jspPropertyGroup = new org.apache.jasper.deploy.JspPropertyGroup(); for (String pattern : group.getUrlPatterns()) { jspPropertyGroup.addUrlPattern(pattern); jspPropertyGroup.setElIgnored(group.getElIgnored()); jspPropertyGroup.setPageEncoding(group.getPageEncoding()); jspPropertyGroup.setScriptingInvalid(group.getScriptingInvalid()); jspPropertyGroup.setIsXml(group.getIsXml()); if (group.getIncludePreludes() != null) { for (String includePrelude : group.getIncludePreludes()) { jspPropertyGroup.addIncludePrelude(includePrelude); if (group.getIncludeCodas() != null) { for (String includeCoda : group.getIncludeCodas()) { jspPropertyGroup.addIncludeCoda(includeCoda); jspPropertyGroup.setDeferredSyntaxAllowedAsLiteral(group.getDeferredSyntaxAllowedAsLiteral()); jspPropertyGroup.setTrimDirectiveWhitespaces(group.getTrimDirectiveWhitespaces()); jspPropertyGroup.setDefaultContentType(group.getDefaultContentType()); jspPropertyGroup.setBuffer(group.getBuffer()); jspPropertyGroup.setErrorOnUndeclaredNamespace(group.getErrorOnUndeclaredNamespace()); for (String pattern : jspPropertyGroup.getUrlPatterns()) {
private boolean isJsfDeclarationsPresent(WebCommonMetaData jBossWebMetaData) { if (jBossWebMetaData != null) { ServletsMetaData servlets = jBossWebMetaData.getServlets(); if (servlets != null) { for (ServletMetaData servlet : servlets) { if (JAVAX_FACES_WEBAPP_FACES_SERVLET.equals(servlet.getServletClass())) { return true; } } } List<ParamValueMetaData> sc = jBossWebMetaData.getContextParams(); if (sc != null) { for (ParamValueMetaData p : sc) { if (CONFIG_FILES.equals(p.getParamName())) { return true; } } } } return false; }
if (merged != null && merged.getTaglibs() != null) { for (final TaglibMetaData tld : merged.getTaglibs()) { boolean found = false; for (final VirtualFile root : testRoots) { VirtualFile child = root.getChild(tld.getTaglibLocation()); if (child.exists()) { if (isTldFile(child)) { TldMetaData value = processTld(deploymentRoot, child, tlds, uniqueTlds); if (!tlds.containsKey(tld.getTaglibUri())) { tlds.put(tld.getTaglibUri(), value); UndertowLogger.ROOT_LOGGER.tldNotFound(tld.getTaglibLocation()); if (tld.getListeners() != null) { for (ListenerMetaData l : tld.getListeners()) { mergedMd.getListeners().add(l);
private void handleServletMappings(boolean is22OrOlder, Set<String> seenMappings, Map<String, List<ServletMappingMetaData>> servletMappings, ServletInfo s) { List<ServletMappingMetaData> mappings = servletMappings.get(s.getName()); if (mappings != null) { for (ServletMappingMetaData mapping : mappings) { for (String pattern : mapping.getUrlPatterns()) { if (is22OrOlder && !pattern.startsWith("*") && !pattern.startsWith("/")) { pattern = "/" + pattern; } if (!seenMappings.contains(pattern)) { s.addMapping(pattern); seenMappings.add(pattern); } else { UndertowLogger.ROOT_LOGGER.duplicateServletMapping(pattern); } } } } }
private void registerProbeFilter(DeploymentUnit deploymentUnit, JBossWebMetaData webMetaData) throws DeploymentUnitProcessingException { if (webMetaData.getFilters() == null) { webMetaData.setFilters(new FiltersMetaData()); } if (webMetaData.getFilterMappings() == null) { webMetaData.setFilterMappings(new ArrayList<FilterMappingMetaData>()); } // probe filter webMetaData.getFilters().add(PROBE_FILTER); // probe filter mapping webMetaData.getFilterMappings().add(0, PROBE_FILTER_MAPPING); Utils.registerAsComponent(PROBE_FILTER_CLASS_NAME, deploymentUnit); }
private static void addListener(final ClassLoader classLoader, final ComponentRegistry components, final DeploymentInfo d, final ListenerMetaData listener, boolean programatic) throws ClassNotFoundException { ListenerInfo l; final Class<? extends EventListener> listenerClass = (Class<? extends EventListener>) classLoader.loadClass(listener.getListenerClass()); ManagedReferenceFactory creator = components.createInstanceFactory(listenerClass); if (creator != null) { InstanceFactory<EventListener> factory = createInstanceFactory(creator); l = new ListenerInfo(listenerClass, factory, programatic); } else { l = new ListenerInfo(listenerClass, programatic); } d.addListener(l); }
if ((metaData.getWebMetaData() != null) && (metaData.getWebMetaData().getContextParams() != null)) { contextParams.addAll(metaData.getWebMetaData().getContextParams()); if (fragmentMetaData.getContextParams() != null) { contextParams.addAll(fragmentMetaData.getContextParams());
private TldMetaData parseTLD(VirtualFile tld) throws DeploymentUnitProcessingException { if (IMPLICIT_TLD.equals(tld.getName())) { // Implicit TLDs are different from regular TLDs return new TldMetaData(); } InputStream is = null; try { is = tld.openStream(); final XMLInputFactory inputFactory = XMLInputFactory.newInstance(); inputFactory.setXMLResolver(NoopXMLResolver.create()); XMLStreamReader xmlReader = inputFactory.createXMLStreamReader(is); return TldMetaDataParser.parse(xmlReader); } catch (XMLStreamException e) { throw new DeploymentUnitProcessingException(UndertowLogger.ROOT_LOGGER.failToParseXMLDescriptor(tld.toString(), e.getLocation().getLineNumber(), e.getLocation().getColumnNumber()), e); } catch (IOException e) { throw new DeploymentUnitProcessingException(UndertowLogger.ROOT_LOGGER.failToParseXMLDescriptor(tld.toString()), e); } finally { try { if (is != null) { is.close(); } } catch (IOException e) { // Ignore } } }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); WarMetaData metaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); if(JsfVersionMarker.isJsfDisabled(deploymentUnit)) { return; } if(metaData == null || metaData.getMergedJBossWebMetaData() == null || metaData.getMergedJBossWebMetaData().getServlets() == null) { return; } JBossServletMetaData jsf = null; for(JBossServletMetaData servlet : metaData.getMergedJBossWebMetaData().getServlets()) { if(JAVAX_FACES_WEBAPP_FACES_SERVLET.equals(servlet.getServletClass())) { jsf = servlet; } } if(jsf != null) { if(jsf.getMultipartConfig() == null) { //WFLY-2329 File upload doesn't work jsf.setMultipartConfig(new MultipartConfigMetaData()); } } if (disallowDoctypeDecl != null) { // Add the disallowDoctypeDecl context param if it's not already present setContextParameterIfAbsent(metaData.getMergedJBossWebMetaData(), DISALLOW_DOCTYPE_DECL, disallowDoctypeDecl.toString()); } }
private TldMetaData parseTLD(Resource tld) throws DeploymentUnitProcessingException { if (IMPLICIT_TLD.equals(tld.getName())) { // Implicit TLDs are different from regular TLDs return new TldMetaData(); } InputStream is = null; try { is = tld.openStream(); final XMLInputFactory inputFactory = XMLInputFactory.newInstance(); inputFactory.setXMLResolver(NoopXMLResolver.create()); XMLStreamReader xmlReader = inputFactory.createXMLStreamReader(is); return TldMetaDataParser.parse(xmlReader); } catch (XMLStreamException e) { throw new DeploymentUnitProcessingException(UndertowLogger.ROOT_LOGGER.failToParseXMLDescriptor(tld.getName(), e.getLocation().getLineNumber(), e.getLocation().getColumnNumber()), e); } catch (IOException e) { throw new DeploymentUnitProcessingException(UndertowLogger.ROOT_LOGGER.failToParseXMLDescriptor(tld.getName()), e); } finally { try { if (is != null) { is.close(); } } catch (IOException e) { // Ignore } } }