Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-13251

Regression in accepted properties for remote ejb initial context lookup

XMLWordPrintable

    • Regression
    • Hide
      1. Start EAP server and deploy attached deployment
      2. Create request to servlet which calls remote EJB => curl -i 'http://localhost:8080/servlet-with-ejb/HeavyProcessingViaEJB?duration=1&delay=1', note the values must of the query parameters are not important for reproduction, I just reused servlet from my test, which requires them to be defined.
      Show
      Start EAP server and deploy attached deployment Create request to servlet which calls remote EJB => curl -i 'http://localhost:8080/servlet-with-ejb/HeavyProcessingViaEJB?duration=1&delay=1' , note the values must of the query parameters are not important for reproduction, I just reused servlet from my test, which requires them to be defined.

      There is regression in possibility to use properties looking like this remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED for initial lookup [1]

      This is regression against EAP 7.0.0 and also against EAP 7.1.0.CR1.

      To reproduce do lookup of remote EJB from servlet or EJB running in EAP server using one of org.xnio.Options properties [2]

      [1]

          09:06:59,222 ERROR [io.undertow.request] (default task-4) UT005023: Exception handling request to /servlet-with-ejb/HeavyProcessingViaEJB: java.lang.IllegalArgumentException: XNIO000006: Class "org.xnio.Options" not found in ModuleClassLoader for Module "deployment.servlet-with-ejb.war" from Service Module Loader
                  at org.xnio.Option.fromString(Option.java:151)
                  at org.wildfly.naming.client.ProviderEnvironment$Builder.getOptionMap(ProviderEnvironment.java:384)
                  at org.wildfly.naming.client.ProviderEnvironment$Builder.populateFromEnvironment(ProviderEnvironment.java:311)
                  at org.wildfly.naming.client.WildFlyRootContext.<init>(WildFlyRootContext.java:114)
                  at org.wildfly.naming.client.WildFlyRootContext.<init>(WildFlyRootContext.java:89)
                  at org.wildfly.naming.client.WildFlyRootContext.<init>(WildFlyRootContext.java:79)
                  at org.wildfly.naming.client.WildFlyInitialContextFactory.getInitialContext(WildFlyInitialContextFactory.java:54)
                  at org.jboss.as.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:144)
                  at javax.naming.InitialContext.lookup(InitialContext.java:417)
                  at javax.naming.InitialContext.lookup(InitialContext.java:417)
                  at org.jboss.qa.startstop.standalone.ejb.resources.HeavyProcessingViaEJBServlet.doGet(HeavyProcessingViaEJBServlet.java:46)
                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
                  at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
                  at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
                  at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
                  at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
                  at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
                  at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
                  at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
                  at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
                  at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
                  at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
                  at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
                  at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
                  at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
                  at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
                  at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
                  at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
                  at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
                  at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
                  at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
                  at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
                  at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
                  at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
                  at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
                  at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
                  at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508)
                  at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
                  at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
                  at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
                  at io.undertow.server.Connectors.executeRootHandler(Connectors.java:326)
                  at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812)
                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                  at java.lang.Thread.run(Thread.java:748)
      

      [2] example lookup properties

       Properties props = new Properties();
              props.put("org.jboss.ejb.client.scoped.context", "true");
              props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
              props.put("endpoint.name", "client");
              props.put("remote.connections", "main");
              props.put("remote.connection.main.host", host);
              props.put("remote.connection.main.port", String.valueOf(port));
              props.put("remote.connection.main.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false");
              props.put("remote.connection.main.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "true");
              props.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
              return props;
      

            dlloyd@redhat.com David Lloyd
            rhatlapa@redhat.com Radim Hatlapatka (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: