Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-10385

TransactionInflowTestCase does not function correctly under security manager

    Details

      Description

      Proactively assigning to Ondra Chaloupka as he is the original test author; feel free to adjust as necessary.

      org.jboss.as.test.integration.transaction.inflow.TransactionInflowTestCase does not function correctly under a security manager. The stack trace is like this:

      Breakpoint reached
      	  at org.wildfly.security.manager.WildFlySecurityManager.checkPermission(WildFlySecurityManager.java:295)
      	  at org.wildfly.security.manager.WildFlySecurityManager.checkPermission(WildFlySecurityManager.java:192)
      	  at java.lang.SecurityManager.checkConnect(SecurityManager.java:1048)
      	  at org.wildfly.security.manager.WildFlySecurityManager.checkConnect(WildFlySecurityManager.java:390)
      	  at java.net.InetAddress.getLocalHost(InetAddress.java:1477)
      	  at org.jboss.as.test.integration.transaction.inflow.TransactionInflowXid.getXid(TransactionInflowXid.java:128)
      	  at org.jboss.as.test.integration.transaction.inflow.TransactionInflowXid.getUniqueXid(TransactionInflowXid.java:102)
      	  at org.jboss.as.test.integration.transaction.inflow.TransactionInflowResourceAdapter.endpointActivation(TransactionInflowResourceAdapter.java:65)
      	  at org.jboss.jca.core.rar.EndpointImpl.activate(EndpointImpl.java:194)
      	  at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.activate(MessageDrivenComponent.java:277)
      	  at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponent.start(MessageDrivenComponent.java:235)
      	  at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54)
      	  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	  at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
      	  at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
      	  at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
      	  at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
      	  at java.lang.Thread.run(Thread.java:748)
      	  at org.jboss.threads.JBossThread.run(JBossThread.java:485)
      Perm = ("java.net.SocketPermission" "behemoth.local" "resolve"), CS = (vfs:/content/inflow-txn-ra.rar/inflow-txn-inside.jar <no signer certificates>), CL = ModuleClassLoader for Module "deployment.inflow-txn-ra.rar" from Service Module Loader, ID = 824b419
      

      The cause is that org.jboss.as.test.integration.transaction.inflow.TransactionInflowXid#getXid calls java.net.InetAddress#getLocalHost which requires a security manager permission. If the permission is denied (which it always is when running under a security manager), then it falls back through a catch (Exception ex) to a bogus IP address of "1.2.3.4".

      For correct operation, the test archives which use this method should have the "*" "resolve" SocketPermission granted to them.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                ochaloup Ondra Chaloupka
                Reporter:
                dmlloyd David Lloyd
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: