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

Tests influencing issue. EJB client prefers last sucessful mechanism.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 7.1.0.ER2
    • 7.1.0.DR19
    • Security
    • None

      I have tests for Kerberos + EJB + Elytron and it seems test influence each other.

      This revelead after Subject.doAs alternative was introduced

                  AuthenticationConfiguration configuration = AuthenticationConfiguration.EMPTY
                          .useProvidersFromClassLoader(KerberosEjbTestCase.class.getClassLoader())
                          .useGSSCredential(getGSSCredential(lc.getSubject()));
                  AuthenticationContext context = AuthenticationContext.empty().with(MatchRule.ALL, configuration);
      
                  final String krbHello = context.run(new PrivilegedExceptionAction<String>() {
      

      Until then positive way (authentication passed) could not be tested

      When tested in sequence
      1. with kerberos ticket (PASS)
      2. without kerberos ticket. (FAIL)

      I get

      09:19:47,847 TRACE [org.wildfly.security] (main) getAuthenticationConfiguration uri=remote+http://localhost.localdomain:8080, protocolDefaultPort=-1, abstractType=jndi, abstractTypeAuthority=jboss, purpose=operate, MatchRule=[null], AuthenticationConfiguration=[AuthenticationConfiguration:principal=anonymous,set-host=localhost.localdomain,set-port=8080,providers-supplier=org.wildfly.security.util.ProviderUtil$1@f325091,mechanism-properties={wildfly.sasl.local-user.quiet-auth=true}]
      09:19:47,895 FINE  [javax.security.sasl] (main) SASLIMPL01:Preferred qop property: null
      09:19:47,895 FINE  [javax.security.sasl] (main) SASLIMPL02:Preferred qop mask: 1
      09:19:47,896 FINE  [javax.security.sasl] (main) SASLIMPL03:Preferred qops : 1 
      09:19:47,897 FINE  [javax.security.sasl] (main) SASLIMPL04:Preferred strength property: null
      09:19:47,897 FINE  [javax.security.sasl] (main) SASLIMPL05:Cipher strengths: 4 2 1 
      09:19:47,898 FINE  [javax.security.sasl] (main) KRB5CLNT01:Requesting service name: remote@localhost
      09:19:47,941 TRACE [org.jboss.remoting.endpoint] (main) Allocated tick to 9 of endpoint (anonymous) <116915f1> (opened org.jboss.remoting3.EndpointImpl$TrackingExecutor@614361fa)
      09:19:47,943 TRACE [org.jboss.remoting.endpoint] (XNIO-1 task-10) Resource closed count 00000008 of endpoint (anonymous) <116915f1> (closed org.jboss.remoting3.EndpointImpl$TrackingExecutor@614361fa)
      09:19:47,944 ERROR [org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase] (main) Access to EJB method was denied for invocation without Kerberos user.
      org.jboss.ejb.client.RequestSendFailedException: org.wildfly.security.auth.AuthenticationException: JBREM000300: Authentication failed due to I/O error
      	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:359)
      	at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:73)
      	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:362)
      	at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:629)
      	at org.jboss.ejb.client.EJBInvocationHandler.lambda$invoke$0(EJBInvocationHandler.java:180)
      	at org.jboss.ejb.client.EJBClientContext.performLocatedAction(EJBClientContext.java:707)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:162)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)
      	at com.sun.proxy.$Proxy30.hello(Unknown Source)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase.testAuthenticationWithoutKerberos(KerberosEjbTestCase.java:611)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase.testAuthenticationWithoutKerberos(KerberosEjbTestCase.java:593)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase.testKerberosRealmWithFallbackWithCorrectCredential(KerberosEjbTestCase.java:341)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      	at org.jboss.arquillian.junit.Arquillian$8$1.invoke(Arquillian.java:379)
      	at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:85)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
      	at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
      	at org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:53)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:85)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:129)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:130)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92)
      	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73)
      	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
      	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:136)
      	at org.jboss.arquillian.junit.Arquillian$8.evaluate(Arquillian.java:372)
      	at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:246)
      	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:431)
      	at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:55)
      	at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:260)
      	at org.jboss.arquillian.junit.Arquillian$7$1.invoke(Arquillian.java:324)
      	at org.jboss.arquillian.container.test.impl.execution.ClientBeforeAfterLifecycleEventExecuter.execute(ClientBeforeAfterLifecycleEventExecuter.java:99)
      	at org.jboss.arquillian.container.test.impl.execution.ClientBeforeAfterLifecycleEventExecuter.on(ClientBeforeAfterLifecycleEventExecuter.java:72)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:85)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createBeforeContext(ContainerEventController.java:124)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:130)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
      	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.fireCustomLifecycle(EventTestRunnerAdaptor.java:159)
      	at org.jboss.arquillian.junit.Arquillian$7.evaluate(Arquillian.java:317)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      	at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:205)
      	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:431)
      	at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:55)
      	at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:219)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      	at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:167)
      	at org.jboss.eapqe.krbldap.arquillian.runner.LdapKrbRunner.run(LdapKrbRunner.java:50)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
      Caused by: org.wildfly.security.auth.AuthenticationException: JBREM000300: Authentication failed due to I/O error
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.doAuthenticate(ConnectionPeerIdentityContext.java:257)
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.authenticate(ConnectionPeerIdentityContext.java:179)
      	at org.jboss.remoting3.EndpointImpl$3.handleDone(EndpointImpl.java:482)
      	at org.jboss.remoting3.EndpointImpl$3.handleDone(EndpointImpl.java:471)
      	at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:208)
      	at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:723)
      	at org.xnio.IoUtils$2.execute(IoUtils.java:71)
      	at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:696)
      	at org.xnio.AbstractIoFuture$CompleteState.withNotifier(AbstractIoFuture.java:132)
      	at org.xnio.AbstractIoFuture.addNotifier(AbstractIoFuture.java:570)
      	at org.jboss.remoting3.EndpointImpl.doGetConnection(EndpointImpl.java:471)
      	at org.jboss.remoting3.EndpointImpl.getConnectedIdentity(EndpointImpl.java:410)
      	at org.jboss.remoting3.UncloseableEndpoint.getConnectedIdentity(UncloseableEndpoint.java:55)
      	at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.lambda$getConnection$1(RemoteEJBReceiver.java:179)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.getConnection(RemoteEJBReceiver.java:179)
      	at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.processInvocation(RemoteEJBReceiver.java:123)
      	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:314)
      	at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:68)
      	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:317)
      	at org.jboss.ejb.client.EJBInvocationHandler.lambda$invoke$0(EJBInvocationHandler.java:176)
      	... 132 more
      Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63) - No service creds)]
      	at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211)
      	at org.wildfly.security.sasl.util.AbstractDelegatingSaslClient.evaluateChallenge(AbstractDelegatingSaslClient.java:54)
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.doAuthenticate(ConnectionPeerIdentityContext.java:242)
      	... 152 more
      Caused by: GSSException: No valid credentials provided (Mechanism level: Fail to create credential. (63) - No service creds)
      	at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:770)
      	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:248)
      	at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
      	at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:192)
      	... 154 more
      Caused by: KrbException: Fail to create credential. (63) - No service creds
      	at sun.security.krb5.internal.CredentialsUtil.acquireServiceCreds(CredentialsUtil.java:156)
      	at sun.security.krb5.Credentials.acquireServiceCreds(Credentials.java:458)
      	at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:693)
      	... 157 more
      09:21:23,516 FINE  [org.jboss.arquillian.test.spi.TestEnricher] (main) BeanManager cannot be located in context. Either you are using an archive with no beans.xml or the BeanManager has not been produced.
      09:21:23,516 FINE  [org.jboss.arquillian.test.spi.TestEnricher] (main) BeanManager cannot be located in context. Either you are using an archive with no beans.xml or the BeanManager has not been produced.
      

      When tested in sequence
      1. without kerberos ticket (PASS)
      2. with kerberos ticket (FAIL)

      I get

      Debug is  true storeKey false useTicketCache false useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is true principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
      Refreshing Kerberos configuration
      		[Krb5LoginModule] user entered username: hnelsonaf0951bb-cf54-44a2-8bed-d54a4f31f8e6@JBOSS.ORG
      
      09:27:38,914 DEBUG [org.apache.mina.filter.codec.ProtocolCodecFilter] (NioDatagramAcceptor-3) Processing a MESSAGE_RECEIVED for session 17
      09:27:38,914 DEBUG [org.jboss.eapqe.krbldap.servers.proxy.UDPProxyThread] (Thread-8) Forwarded Message client ( localhost.localdomain 35,926 ) -> server ( localhost.localdomain 6,088 ): 168 bytes
      09:27:38,918 DEBUG [org.jboss.eapqe.krbldap.servers.proxy.UDPProxyThread] (Thread-8) Forwarded Message server ( localhost.localdomain 6,088 ) -> client ( localhost.localdomain 35,926 ): {4} bytes
      principal is hnelsonaf0951bb-cf54-44a2-8bed-d54a4f31f8e6@JBOSS.ORG
      Commit Succeeded 
      
      09:27:41,345 TRACE [org.wildfly.security] (main) getAuthenticationConfiguration uri=remote+http://localhost.localdomain:8080, protocolDefaultPort=-1, abstractType=jndi, abstractTypeAuthority=jboss, purpose=operate, MatchRule=[], AuthenticationConfiguration=[AuthenticationConfiguration:principal=anonymous,set-host=localhost.localdomain,set-port=8080,credentials-present,providers-supplier=org.wildfly.security.util.ServiceLoaderSupplier@5a96f3cb,mechanism-properties={wildfly.sasl.local-user.quiet-auth=true}]
      09:27:42,553 TRACE [org.jboss.remoting.endpoint] (main) Allocated tick to 9 of endpoint (anonymous) <1b994617> (opened org.jboss.remoting3.EndpointImpl$TrackingExecutor@63ed5dae)
      09:27:42,555 TRACE [org.jboss.remoting.endpoint] (XNIO-1 task-11) Resource closed count 00000008 of endpoint (anonymous) <1b994617> (closed org.jboss.remoting3.EndpointImpl$TrackingExecutor@63ed5dae)
      09:28:08,176 ERROR [org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase] (main) Access to EJB method was denied for invocation with Kerberos user.: java.security.PrivilegedActionException: org.jboss.ejb.client.RequestSendFailedException: org.wildfly.security.auth.AuthenticationException: JBREM000300: Authentication failed due to I/O error
      	at org.wildfly.common.context.Contextual.runExceptionAction(Contextual.java:110)
      	at org.wildfly.security.auth.client.AuthenticationContext.run(AuthenticationContext.java:268)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase.testAuthenticationWithKerberos(KerberosEjbTestCase.java:705)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase.testAuthenticationWithKerberos(KerberosEjbTestCase.java:657)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase.testSimpleKerberosRealmWithKerberos(KerberosEjbTestCase.java:323)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      	at org.jboss.arquillian.junit.Arquillian$8$1.invoke(Arquillian.java:379)
      	at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:85)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
      	at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
      	at org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:53)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:85)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:129)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:130)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92)
      	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73)
      	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
      	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:136)
      	at org.jboss.arquillian.junit.Arquillian$8.evaluate(Arquillian.java:372)
      	at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:246)
      	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:431)
      	at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:55)
      	at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:260)
      	at org.jboss.arquillian.junit.Arquillian$7$1.invoke(Arquillian.java:324)
      	at org.jboss.arquillian.container.test.impl.execution.ClientBeforeAfterLifecycleEventExecuter.execute(ClientBeforeAfterLifecycleEventExecuter.java:99)
      	at org.jboss.arquillian.container.test.impl.execution.ClientBeforeAfterLifecycleEventExecuter.on(ClientBeforeAfterLifecycleEventExecuter.java:72)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:85)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
      	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createBeforeContext(ContainerEventController.java:124)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:130)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:92)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:73)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:96)
      	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:92)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143)
      	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
      	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.fireCustomLifecycle(EventTestRunnerAdaptor.java:159)
      	at org.jboss.arquillian.junit.Arquillian$7.evaluate(Arquillian.java:317)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      	at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:205)
      	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:431)
      	at org.jboss.arquillian.junit.Arquillian.access$200(Arquillian.java:55)
      	at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:219)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      	at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:167)
      	at org.jboss.eapqe.krbldap.arquillian.runner.LdapKrbRunner.run(LdapKrbRunner.java:50)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
      Caused by: org.jboss.ejb.client.RequestSendFailedException: org.wildfly.security.auth.AuthenticationException: JBREM000300: Authentication failed due to I/O error
      	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:359)
      	at org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:73)
      	at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:362)
      	at org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:629)
      	at org.jboss.ejb.client.EJBInvocationHandler.lambda$invoke$0(EJBInvocationHandler.java:180)
      	at org.jboss.ejb.client.EJBClientContext.performLocatedAction(EJBClientContext.java:707)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:162)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:112)
      	at com.sun.proxy.$Proxy30.hello(Unknown Source)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase$1.run(KerberosEjbTestCase.java:709)
      	at org.jboss.eapqe.krbldap.eap71.tests.krb.ejb.KerberosEjbTestCase$1.run(KerberosEjbTestCase.java:705)
      	at org.wildfly.common.context.Contextual.runExceptionAction(Contextual.java:108)
      	... 129 more
      Caused by: org.wildfly.security.auth.AuthenticationException: JBREM000300: Authentication failed due to I/O error
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.doAuthenticate(ConnectionPeerIdentityContext.java:257)
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.authenticate(ConnectionPeerIdentityContext.java:179)
      	at org.jboss.remoting3.EndpointImpl$3.handleDone(EndpointImpl.java:482)
      	at org.jboss.remoting3.EndpointImpl$3.handleDone(EndpointImpl.java:471)
      	at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:208)
      	at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:723)
      	at org.xnio.IoUtils$2.execute(IoUtils.java:71)
      	at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:696)
      	at org.xnio.AbstractIoFuture$CompleteState.withNotifier(AbstractIoFuture.java:132)
      	at org.xnio.AbstractIoFuture.addNotifier(AbstractIoFuture.java:570)
      	at org.jboss.remoting3.EndpointImpl.doGetConnection(EndpointImpl.java:471)
      	at org.jboss.remoting3.EndpointImpl.getConnectedIdentity(EndpointImpl.java:410)
      	at org.jboss.remoting3.UncloseableEndpoint.getConnectedIdentity(UncloseableEndpoint.java:55)
      	at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.lambda$getConnection$1(RemoteEJBReceiver.java:179)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.getConnection(RemoteEJBReceiver.java:179)
      	at org.jboss.ejb.protocol.remote.RemoteEJBReceiver.processInvocation(RemoteEJBReceiver.java:123)
      	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:314)
      	at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:68)
      	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:317)
      	at org.jboss.ejb.client.EJBInvocationHandler.lambda$invoke$0(EJBInvocationHandler.java:176)
      	... 136 more
      Caused by: javax.security.sasl.SaslException: ELY05008: [PLAIN] No authentication mechanism login name was given
      	at org.wildfly.security.sasl.plain.PlainSaslClient.evaluateChallenge(PlainSaslClient.java:81)
      	at org.wildfly.security.sasl.util.AbstractDelegatingSaslClient.evaluateChallenge(AbstractDelegatingSaslClient.java:54)
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.doAuthenticate(ConnectionPeerIdentityContext.java:242)
      	... 156 more
      

      Seems to me like last succesfull authentication mechanism was remembered and tried preferably. But this seems to me to be remembered on client side. How this can be solved? I use new ejb 4.0.x client.
      If client fails authentication mechanism "initialization" shouldn't it rather fallback to another mechanism?

            fjuma1@redhat.com Farah Juma
            mchoma@redhat.com Martin Choma
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: