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

    Details

    • Target Release:
    • Steps to Reproduce:
      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.
    • Affects Testing:
      Regression

      Description

      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;
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  dmlloyd David Lloyd
                  Reporter:
                  rhatlapa Radim Hatlapatka
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: