]
Farah Juma moved JBEAP-12353 to WFLY-9134:
------------------------------------------
Project: WildFly (was: JBoss Enterprise Application Platform)
Key: WFLY-9134 (was: JBEAP-12353)
Workflow: GIT Pull Request workflow (was: CDW with loose statuses v1)
Component/s: Quickstarts
Security
(was: Quickstarts)
(was: Security)
Affects Version/s: (was: 7.1.0.ER2)
Affects Testing: (was: Regression)
7.0.x ejb-security-interceptors quickstart does not work on 7.1
---------------------------------------------------------------
Key: WFLY-9134
URL:
https://issues.jboss.org/browse/WFLY-9134
Project: WildFly
Issue Type: Bug
Components: Quickstarts, Security
Reporter: Farah Juma
Assignee: Farah Juma
Priority: Blocker
The quickstart should be re-added and fixed to demonstrate identity switching on EJB
client with legacy security.
As of JBoss EAP 7.1.0.ER2, this quickstart fails with the following message:
{code}* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Jul 10, 2017 6:24:39 PM org.jboss.ejb.client.EJBClient <clinit>
INFO: JBoss EJB Client version 2.1.4.Final-redhat-1
This first round of tests is using the (PicketBox) SecurityContextAssociation API to set
the desired Principal.
-------------------------------------------------
* * About to perform test as ConnectionUser * *
* Making Direct Calls to the SecuredEJB
Jul 10, 2017 6:24:39 PM org.xnio.Xnio <clinit>
INFO: XNIO version 3.3.6.Final-redhat-1
Jul 10, 2017 6:24:39 PM org.xnio.nio.NioXnio <clinit>
INFO: XNIO NIO Implementation Version 3.3.6.Final-redhat-1
Jul 10, 2017 6:24:39 PM org.jboss.remoting3.EndpointImpl <clinit>
INFO: JBoss Remoting version 4.0.18.Final-redhat-1
Jul 10, 2017 6:24:40 PM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
INFO: EJBCLIENT000017: Received server version 3 and marshalling strategies [river]
Jul 10, 2017 6:24:40 PM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver
associate
INFO: EJBCLIENT000013: Successful version handshake completed for receiver context
EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@57855c9a,
receiver=Remoting connection EJB receiver
[connection=org.jboss.ejb.client.remoting.ConnectionPool$PooledConnection(a)3b084709,channel=jboss.ejb,nodename=dev109]}
on channel Channel ID d2a606da (outbound) of Remoting connection 5f282abb to
localhost/127.0.0.1:8080
* getSecurityInformation()=[Principal={ConnectionUser}, In role {User}=true, In role
{RoleOne}=false, In role {RoleTwo}=false]
* Can call roleOneMethod()=false
* Can call roleTwoMethod()=false
* Calling the IntermediateEJB to repeat the test server to server
* * IntermediateEJB - Begin Testing * *
SecuredEJBRemote.getSecurityInformation()=[Principal={ConnectionUser}, In role
{User}=true, In role {RoleOne}=false, In role {RoleTwo}=false]
Can call roleOneMethod=false
Can call roleTwoMethod=false
* * IntermediateEJB - End Testing * *
* * Test Complete * *
-------------------------------------------------
-------------------------------------------------
* * About to perform test as AppUserOne * *
* Making Direct Calls to the SecuredEJB
* * Test Complete * *
-------------------------------------------------
Exception in thread "main" javax.ejb.EJBAccessException: WFLYSEC0027: Invalid
User
at
org.jboss.as.ejb3.security.SecurityContextInterceptor$1.run(SecurityContextInterceptor.java:69)
at
org.jboss.as.ejb3.security.SecurityContextInterceptor$1.run(SecurityContextInterceptor.java:49)
at
org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:97)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
at
org.jboss.as.quickstarts.ejb_security_interceptors.ServerSecurityInterceptor.aroundInvoke(ServerSecurityInterceptor.java:83)
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:498)
at
org.jboss.as.ejb3.component.ContainerInterceptorMethodInterceptorFactory$ContainerInterceptorMethodInterceptor.processInvocation(ContainerInterceptorMethodInterceptorFactory.java:91)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:50)
at
org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.as.ejb3.deployment.processors.EjbSuspendInterceptor.processInvocation(EjbSuspendInterceptor.java:57)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:60)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:438)
at
org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:609)
at
org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:57)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
at
org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
at
org.wildfly.security.auth.server.SecurityIdentity.runAsFunctionEx(SecurityIdentity.java:380)
at
org.jboss.as.ejb3.remote.AssociationImpl.invokeWithIdentity(AssociationImpl.java:483)
at org.jboss.as.ejb3.remote.AssociationImpl.invokeMethod(AssociationImpl.java:478)
at
org.jboss.as.ejb3.remote.AssociationImpl.lambda$receiveInvocationRequest$0(AssociationImpl.java:182)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
at ...asynchronous invocation...(Unknown Source)
at
org.jboss.ejb.client.remoting.InvocationExceptionResponseHandler$MethodInvocationExceptionResultProducer.getResult(InvocationExceptionResponseHandler.java:96)
at
org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:276)
at
org.jboss.as.quickstarts.ejb_security_interceptors.ClientSecurityInterceptor.handleInvocationResult(ClientSecurityInterceptor.java:44)
at
org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
at
org.jboss.ejb.client.EJBObjectInterceptor.handleInvocationResult(EJBObjectInterceptor.java:64)
at
org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
at
org.jboss.ejb.client.EJBHomeInterceptor.handleInvocationResult(EJBHomeInterceptor.java:88)
at
org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
at
org.jboss.ejb.client.TransactionInterceptor.handleInvocationResult(TransactionInterceptor.java:46)
at
org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:290)
at
org.jboss.ejb.client.ReceiverInterceptor.handleInvocationResult(ReceiverInterceptor.java:142)
at
org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:265)
at
org.jboss.ejb.client.EJBClientInvocationContext.awaitResponse(EJBClientInvocationContext.java:453)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:204)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:183)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:146)
at com.sun.proxy.$Proxy0.getSecurityInformation(Unknown Source)
at
org.jboss.as.quickstarts.ejb_security_interceptors.RemoteClient.makeCalls(RemoteClient.java:135)
at
org.jboss.as.quickstarts.ejb_security_interceptors.RemoteClient.performTestingSecurityContext(RemoteClient.java:62)
at
org.jboss.as.quickstarts.ejb_security_interceptors.RemoteClient.main(RemoteClient.java:171){code}