Package org.jboss.metadata.web.jboss

Examples of org.jboss.metadata.web.jboss.JBossServletMetaData


   public String getComponentName(DeploymentUnit unit)
   {
      // FIXME: it's real ugly to analyze the deployment unit at this stage. Better to let the ComponentNamingDeployer be explicitly driven by meta data.
      JBossEnterpriseBeanMetaData ejb = unit.getAttachment(JBossEnterpriseBeanMetaData.class);
      JBossServletMetaData servlet = unit.getAttachment(JBossServletMetaData.class);
      assert ejb != null || servlet != null : "borked deployment unit " + unit;
      if(ejb != null)
         return ejb.getEjbName();
      if(servlet != null)
         return servlet.getServletName();
      throw new IllegalStateException("Deployment unit " + unit + " has no known component meta data");
   }
View Full Code Here


    * @return new servlet meta data
    */
   public static JBossServletMetaData newServlet(final String servletName, final String servletClass,
         final JBossServletsMetaData servletsMD)
   {
      final JBossServletMetaData servletMD = new JBossServletMetaData();

      servletMD.setServletName(servletName);
      servletMD.setServletClass(servletClass);
      servletsMD.add(servletMD);

      return servletMD;
   }
View Full Code Here

     * @param servletsMD servlets meta data
     * @return new servlet meta data
     */
    public static JBossServletMetaData newServlet(final String servletName, final String servletClass,
            final JBossServletsMetaData servletsMD) {
        final JBossServletMetaData servletMD = new JBossServletMetaData();

        servletMD.setServletName(servletName);
        servletMD.setServletClass(servletClass);
        servletsMD.add(servletMD);

        return servletMD;
    }
View Full Code Here

        boolean useScannedClass = false;
        String servletName;
        if (resteasy.getScannedApplicationClass() == null) {
            //if there is no scanned application we must add a servlet with a name of
            //javax.ws.rs.core.Application
            JBossServletMetaData servlet = new JBossServletMetaData();
            servlet.setName(JAX_RS_SERVLET_NAME);
            servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
            servlet.setAsyncSupported(true);
            addServlet(webdata, servlet);
            servletName = JAX_RS_SERVLET_NAME;

        } else {
            if (servletMappingsExist(webdata, JAX_RS_SERVLET_NAME)) {
                throw new DeploymentUnitProcessingException(MESSAGES.conflictUrlMapping());

            }

            //now there are two options.
            //if there is already a servlet defined with an init param
            //we don't do anything.
            //Otherwise we install our filter
            //JAVA-RS seems somewhat confused about the difference between a context param
            //and an init param.
            ParamValueMetaData param = findInitParam(webdata, SERVLET_INIT_PARAM);
            if (param != null) {
                //we need to promote the init param to a context param
                servletName = param.getParamValue();
                setContextParameter(webdata, "javax.ws.rs.Application", servletName);
            } else {
                ParamValueMetaData contextParam = findContextParam(webdata, "javax.ws.rs.Application");
                if (contextParam == null) {
                    setContextParameter(webdata, "javax.ws.rs.Application", resteasy.getScannedApplicationClass().getName());
                    useScannedClass = true;
                    servletName = resteasy.getScannedApplicationClass().getName();
                } else {
                    servletName = contextParam.getParamValue();
                }
            }
        }

        boolean mappingSet = false;

        if (useScannedClass) {

            //look for servlet mappings
            if (!servletMappingsExist(webdata, servletName)) {
                //no mappings, add our own
                List<String> patterns = new ArrayList<String>();
                if (resteasy.getScannedApplicationClass().isAnnotationPresent(ApplicationPath.class)) {
                    ApplicationPath path = resteasy.getScannedApplicationClass().getAnnotation(ApplicationPath.class);
                    String pathValue = path.value().trim();
                    if (!pathValue.startsWith("/")) {
                        pathValue = "/" + pathValue;
                    }
                    String prefix = pathValue;
                    if (pathValue.endsWith("/")) {
                        pathValue += "*";
                    } else {
                        pathValue += "/*";
                    }
                    patterns.add(pathValue);
                    setContextParameter(webdata, "resteasy.servlet.mapping.prefix", prefix);
                    mappingSet = true;
                } else {
                    JAXRS_LOGGER.noServletMappingFound(servletName);
                    return;
                }
                ServletMappingMetaData mapping = new ServletMappingMetaData();
                mapping.setServletName(servletName);
                mapping.setUrlPatterns(patterns);
                if (webdata.getServletMappings() == null) {
                    webdata.setServletMappings(new ArrayList<ServletMappingMetaData>());
                }
                webdata.getServletMappings().add(mapping);
            }

            //add a servlet named after the application class
            JBossServletMetaData servlet = new JBossServletMetaData();
            servlet.setName(servletName);
            servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
            servlet.setAsyncSupported(true);
            addServlet(webdata, servlet);

        }

        if (!mappingSet) {
View Full Code Here

        boolean useScannedClass = false;
        String servletName;
        if (resteasy.getScannedApplicationClass() == null) {
            //if there is no scanned application we must add a servlet with a name of
            //javax.ws.rs.core.Application
            JBossServletMetaData servlet = new JBossServletMetaData();
            servlet.setName(JAX_RS_SERVLET_NAME);
            servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
            servlet.setAsyncSupported(true);
            addServlet(webdata, servlet);
            servletName = JAX_RS_SERVLET_NAME;

        } else {
            if (servletMappingsExist(webdata, JAX_RS_SERVLET_NAME)) {
                throw new DeploymentUnitProcessingException(MESSAGES.conflictUrlMapping());

            }

            //now there are two options.
            //if there is already a servlet defined with an init param
            //we don't do anything.
            //Otherwise we install our filter
            //JAVA-RS seems somewhat confused about the difference between a context param
            //and an init param.
            ParamValueMetaData param = findInitParam(webdata, SERVLET_INIT_PARAM);
            if (param != null) {
                //we need to promote the init param to a context param
                servletName = param.getParamValue();
                setContextParameter(webdata, "javax.ws.rs.Application", servletName);
            } else {
                ParamValueMetaData contextParam = findContextParam(webdata, "javax.ws.rs.Application");
                if (contextParam == null) {
                    setContextParameter(webdata, "javax.ws.rs.Application", resteasy.getScannedApplicationClass().getName());
                    useScannedClass = true;
                    servletName = resteasy.getScannedApplicationClass().getName();
                } else {
                    servletName = contextParam.getParamValue();
                }
            }
        }

        boolean mappingSet = false;

        if (useScannedClass) {

            //look for servlet mappings
            if (!servletMappingsExist(webdata, servletName)) {
                //no mappings, add our own
                List<String> patterns = new ArrayList<String>();
                if (resteasy.getScannedApplicationClass().isAnnotationPresent(ApplicationPath.class)) {
                    ApplicationPath path = resteasy.getScannedApplicationClass().getAnnotation(ApplicationPath.class);
                    String pathValue = path.value().trim();
                    if (!pathValue.startsWith("/")) {
                        pathValue = "/" + pathValue;
                    }
                    String prefix = pathValue;
                    if (pathValue.endsWith("/")) {
                        pathValue += "*";
                    } else {
                        pathValue += "/*";
                    }
                    patterns.add(pathValue);
                    setContextParameter(webdata, "resteasy.servlet.mapping.prefix", prefix);
                    mappingSet = true;
                } else {
                    JAXRS_LOGGER.noServletMappingFound(servletName);
                    return;
                }
                ServletMappingMetaData mapping = new ServletMappingMetaData();
                mapping.setServletName(servletName);
                mapping.setUrlPatterns(patterns);
                if (webdata.getServletMappings() == null) {
                    webdata.setServletMappings(new ArrayList<ServletMappingMetaData>());
                }
                webdata.getServletMappings().add(mapping);
            }

            //add a servlet named after the application class
            JBossServletMetaData servlet = new JBossServletMetaData();
            servlet.setName(servletName);
            servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
            servlet.setAsyncSupported(true);
            addServlet(webdata, servlet);

        }

        if (!mappingSet) {
View Full Code Here

        boolean useScannedClass = false;
        String servletName;
        if (resteasy.getScannedApplicationClass() == null) {
            //if there is no scanned application we must add a servlet with a name of
            //javax.ws.rs.core.Application
            JBossServletMetaData servlet = new JBossServletMetaData();
            servlet.setName(JAX_RS_SERVLET_NAME);
            servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
            servlet.setAsyncSupported(true);
            addServlet(webdata, servlet);
            servletName = JAX_RS_SERVLET_NAME;

        } else {
            if (servletMappingsExist(webdata, JAX_RS_SERVLET_NAME)) {
                throw new DeploymentUnitProcessingException(MESSAGES.conflictUrlMapping());

            }

            //now there are two options.
            //if there is already a servlet defined with an init param
            //we don't do anything.
            //Otherwise we install our filter
            //JAVA-RS seems somewhat confused about the difference between a context param
            //and an init param.
            ParamValueMetaData param = findInitParam(webdata, SERVLET_INIT_PARAM);
            if (param != null) {
                //we need to promote the init param to a context param
                servletName = param.getParamValue();
                setContextParameter(webdata, "javax.ws.rs.Application", servletName);
            } else {
                ParamValueMetaData contextParam = findContextParam(webdata, "javax.ws.rs.Application");
                if (contextParam == null) {
                    setContextParameter(webdata, "javax.ws.rs.Application", resteasy.getScannedApplicationClass().getName());
                    useScannedClass = true;
                    servletName = resteasy.getScannedApplicationClass().getName();
                } else {
                    servletName = contextParam.getParamValue();
                }
            }
        }

        boolean mappingSet = false;

        if (useScannedClass) {

            //look for servlet mappings
            if (!servletMappingsExist(webdata, servletName)) {
                //no mappings, add our own
                List<String> patterns = new ArrayList<String>();
                if (resteasy.getScannedApplicationClass().isAnnotationPresent(ApplicationPath.class)) {
                    ApplicationPath path = resteasy.getScannedApplicationClass().getAnnotation(ApplicationPath.class);
                    String pathValue = path.value().trim();
                    if (!pathValue.startsWith("/")) {
                        pathValue = "/" + pathValue;
                    }
                    String prefix = pathValue;
                    if (pathValue.endsWith("/")) {
                        pathValue += "*";
                    } else {
                        pathValue += "/*";
                    }
                    patterns.add(pathValue);
                    setContextParameter(webdata, "resteasy.servlet.mapping.prefix", prefix);
                    mappingSet = true;
                } else {
                    JAXRS_LOGGER.noServletMappingFound(servletName);
                    return;
                }
                ServletMappingMetaData mapping = new ServletMappingMetaData();
                mapping.setServletName(servletName);
                mapping.setUrlPatterns(patterns);
                if (webdata.getServletMappings() == null) {
                    webdata.setServletMappings(new ArrayList<ServletMappingMetaData>());
                }
                webdata.getServletMappings().add(mapping);
            }

            //add a servlet named after the application class
            JBossServletMetaData servlet = new JBossServletMetaData();
            servlet.setName(servletName);
            servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
            servlet.setAsyncSupported(true);
            addServlet(webdata, servlet);

        }

        if (!mappingSet) {
View Full Code Here

       </servlet>
       */
      JBossServletsMetaData servlets = jbwmd.getServlets();
      for (Endpoint ep : dep.getService().getEndpoints())
      {
         JBossServletMetaData servlet = new JBossServletMetaData();
         servlet.setServletName(ep.getShortName());
         servlet.setServletClass(ep.getTargetBeanName());
         servlets.add(servlet);
      }

      /*
       <servlet-mapping>
View Full Code Here

         listener.setListenerClass(listenerClass);
      }

      for (Iterator it = jbwmd.getServlets().iterator(); it.hasNext();)
      {
         JBossServletMetaData servlet = (JBossServletMetaData)it.next();
         List<ParamValueMetaData> initParams = servlet.getInitParam();
         if (initParams == null)
         {
            initParams = new ArrayList<ParamValueMetaData>();
            servlet.setInitParam(initParams);
         }

         String linkName = servlet.getServletName();

         // find the servlet-class
         String orgServletClassName = servlet.getServletClass();

         // JSP
         if (orgServletClassName == null)
            continue;

         // Get the servlet class
         Class orgServletClass = null;
         try
         {
            ClassLoader loader = dep.getInitialClassLoader();
            orgServletClass = loader.loadClass(orgServletClassName);
         }
         catch (ClassNotFoundException ex)
         {
            log.warn("Cannot load servlet class: " + orgServletClassName);
         }

         String targetBeanName = null;

         // Nothing to do if we have an <init-param>
         if (isAlreadyModified(servlet))
         {
            for (ParamValueMetaData initParam : initParams)
            {
               String paramName = initParam.getParamName();
               String paramValue = initParam.getParamValue();
               if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
               {
                  targetBeanName = paramValue;
               }
            }
         }
         else
         {
            // Check if it is a real servlet that we can ignore
            if (orgServletClass != null && javax.servlet.Servlet.class.isAssignableFrom(orgServletClass))
            {
               log.info("Ignore servlet: " + orgServletClassName);
               continue;
            }
            else if (orgServletClassName.endsWith("Servlet"))
            {
               log.info("Ignore <servlet-class> that ends with 'Servlet': " + orgServletClassName);
               continue;
            }

            servlet.setServletClass(servletClass);

            // add additional init params
            if (orgServletClassName.equals(servletClass) == false)
            {
               targetBeanName = orgServletClassName;
View Full Code Here

      assertEquals("topic/testTopic", msgdest2.getJndiName());
      assertEquals("topic/testTopic", msgdest2.getMappedName());

      // servlets
      assertEquals(30, jbossWeb.getServlets().size());
      JBossServletMetaData servlet1 = jbossWeb.getServletByName("APIServlet");
      assertNotNull(servlet1);
      assertEquals("servlet1", servlet1.getId());
      assertEquals("org.jboss.test.web.servlets.APIServlet", servlet1.getServletClass());
      JBossServletMetaData servlet2 = jbossWeb.getServletByName("ClasspathServlet");
      assertNotNull(servlet2);
      assertEquals("servlet2", servlet2.getId());
      assertEquals("org.jboss.test.web.servlets.ClasspathServlet", servlet2.getServletClass());
      assertEquals(1, servlet2.getLoadOnStartup());
      // servlet10
      JBossServletMetaData servlet10 = jbossWeb.getServletByName("EJBOnStartupServlet");
      assertNotNull(servlet10);
      assertEquals("servlet10", servlet10.getId());
      assertEquals("EJBOnStartupServlet", servlet10.getServletName());
      assertEquals("org.jboss.test.web.servlets.EJBOnStartupServlet", servlet10.getServletClass());
      assertEquals(1, servlet10.getLoadOnStartup());
      List<ParamValueMetaData> s10params = servlet10.getInitParam();
      assertEquals(1, s10params.size());
      ParamValueMetaData s10p0 = s10params.get(0);
      assertEquals("failOnError", s10p0.getParamName());
      assertEquals("false", s10p0.getParamValue());
      // servlet19
      JBossServletMetaData servlet19 = jbossWeb.getServletByName("UnsecureRunAsServletWithPrincipalNameAndRoles");
      assertNotNull(servlet19);
      assertEquals("servlet19", servlet19.getId());
      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRoles", servlet19.getServletName());
      assertEquals("org.jboss.test.web.servlets.UnsecureRunAsServlet", servlet19.getServletClass());
      List<ParamValueMetaData> s19params = servlet19.getInitParam();
      assertEquals(1, s19params.size());
      ParamValueMetaData s19p0 = s19params.get(0);
      assertEquals("ejbName", s19p0.getParamName());
      assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", s19p0.getParamValue());
      RunAsMetaData s19RunAs = servlet19.getRunAs();
      assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
      assertEquals("InternalUser", s19RunAs.getRoleName());
      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", servlet19.getRunAsPrincipal());
      RunAsIdentityMetaData s19RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsServletWithPrincipalNameAndRoles");
      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", s19RunAsID.getPrincipalName());
      Set<String> s19RunAsPrincipalRoles = jbossWeb.getSecurityRoles().getSecurityRoleNamesByPrincipal("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal");
      assertEquals(set("ExtraRole1"), s19RunAsPrincipalRoles);
      assertEquals(set("ExtraRole1", "InternalUser"), s19RunAsID.getRunAsRoles());
      assertEquals(true, s19RunAsID.doesUserHaveRole("ExtraRole1"));
      assertEquals(true, s19RunAsID.doesUserHaveRole("InternalUser"));
      // servlet20
      JBossServletMetaData servlet20 = jbossWeb.getServletByName("UnsecureRunAsJsp");
      assertNotNull(servlet20);
      assertEquals("servlet20", servlet20.getId());
      assertEquals("UnsecureRunAsJsp", servlet20.getServletName());
      assertEquals(null, servlet20.getServletClass());
      assertEquals("/runAs.jsp", servlet20.getJspFile());
      RunAsMetaData s20RunAs = servlet20.getRunAs();
      assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
      assertEquals("InternalUser", s20RunAs.getRoleName());
      assertEquals(null, servlet20.getRunAsPrincipal());
      RunAsIdentityMetaData s20RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsJsp");
      assertEquals("anonymous", s20RunAsID.getPrincipalName());
      assertEquals(set("InternalUser"), s20RunAsID.getRunAsRoles());
      assertEquals(true, s20RunAsID.doesUserHaveRole("InternalUser"));
      // servlet27
      JBossServletMetaData servlet27 = jbossWeb.getServletByName("UserInRoleServlet");
      assertEquals("servlet27", servlet27.getId());
      assertEquals("UserInRoleServlet", servlet27.getServletName());
      assertEquals("org.jboss.test.web.servlets.UserInRoleServlet", servlet27.getServletClass());
      List<ParamValueMetaData> s27params = servlet27.getInitParam();
      assertEquals(2, s27params.size());
      ParamValueMetaData s27p0 = s27params.get(0);
      assertEquals("expectedUserRoles", s27p0.getParamName());
      assertEquals("AuthorizedUser,ServletUser", s27p0.getParamValue());
      ParamValueMetaData s27p1 = s27params.get(1);
      assertEquals("unexpectedUserRoles", s27p1.getParamName());
      assertEquals("Anonymous", s27p1.getParamValue());
      SecurityRoleRefsMetaData s27RoleRefs = servlet27.getSecurityRoleRefs();
      assertEquals(1, s27RoleRefs.size());
      SecurityRoleRefMetaData s27ServletUser = s27RoleRefs.get("ServletUser");
      assertEquals("ServletUser", s27ServletUser.getRoleName());
      assertEquals("ServletUserRole", s27ServletUser.getRoleLink());
   }
View Full Code Here

      //Let us merge the merged spec metadata with the jbossweb metadata
      JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
      mergedJBossWebMD.merge(jbossWMD, merged);

      //Assert the run as role
      JBossServletMetaData jbossServletMetaData = mergedJBossWebMD.getServlets().get("MyServlet");
      assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
      assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());

      // @PostConstruct
      assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
      // @PreDestroy
      assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
View Full Code Here

TOP

Related Classes of org.jboss.metadata.web.jboss.JBossServletMetaData

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.