[jboss-dev-forums] [EJB3 Development] - javax.ejb.EJBAccessException: Invalid User Jboss 5.1

Lokesh Kumar Padhanvis do-not-reply at jboss.com
Fri Nov 2 07:29:19 EDT 2012


Lokesh Kumar Padhanvis [https://community.jboss.org/people/lokeshdotp] created the discussion

"javax.ejb.EJBAccessException: Invalid User Jboss 5.1"

To view the discussion, visit: https://community.jboss.org/message/773633#773633

--------------------------------------------------------------
Hi

This might be the routine question I am posting here, but I dont know what where else to post.

My configuration

Jboss 5.1.0 GA app server, EJB3

And I am trying to call a secured method on a SLSB. And I am constantly getting this exception

javax.ejb.EJBAccessException: Invalid User
    at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:165)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:421)
    at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
    at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
    at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
    at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891)
    at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744)
    at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697)
    at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524)
    at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232)
    at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:211)
    at org.jboss.remoting.Client.invoke(Client.java:1724)
    at org.jboss.remoting.Client.invoke(Client.java:629)
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
    at $Proxy3.invoke(Unknown Source)
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
    at $Proxy2.getAllNetworkElements(Unknown Source)
    at tryouts.ejb3.Client.start(Client.java:49)
    at tryouts.ejb3.Client.main(Client.java:33)
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
    at $Proxy3.invoke(Unknown Source)
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
    at $Proxy2.getAllNetworkElements(Unknown Source)
    at tryouts.ejb3.Client.start(Client.java:49)
    at tryouts.ejb3.Client.main(Client.java:33)


I have gone through the security FAQ " https://community.jboss.org/docs/DOC-12198 https://community.jboss.org/wiki/SecurityFAQ" and did the same thing in my client code.

Client.java
public class Client
{
    public static void main(String[] args)
    {
        new Client().start();
    }

    private void start()
    {
        try
        {
            System.setProperty( "java.security.auth.login.config","src/auth.conf" );
            SecurityClient client = SecurityClientFactory.getSecurityClient();
            client.setJAAS( "myDomain", new MyCallbackHandler("username","password"));
            client.login();
            InitialContext ctx = new InitialContext();
            System.out.println( "Got the initial context" );
            Object ref = ctx.lookup( "aserver/TopologySessionBean/remote" );
            TopologySessionRemote remote = (TopologySessionRemote) PortableRemoteObject.narrow( ref, TopologySessionRemote.class );
            System.out.println( "Got the remote bean: " + remote );
            List nes = remote.getAllNetworkElements();
            System.out.println( "Number of NEs: " + nes.size() );
        }
        catch ( Exception ex )
        {
            System.out.println( "~~~~~~~~~~~~~ ERROR ~~~~~~~~~~~~~~" );
            ex.printStackTrace();
        }
    }

    class MyCallbackHandler implements CallbackHandler
    {

        private String uid;
        private String pid;

        public MyCallbackHandler(String uid, String pid )
        {
            this.uid = uid;
            this.pid = pid;
        }

        @Override
        public void handle( Callback[] callbacks ) throws IOException, UnsupportedCallbackException
        {
            for ( Callback cb : callbacks )
            {
                if ( cb instanceof NameCallback )
                {
                    NameCallback ncb = (NameCallback) cb;
                    ncb.setName( uid );
                }
                else if ( cb instanceof PasswordCallback )
                {
                    PasswordCallback pcb = (PasswordCallback) cb;
                    pcb.setPassword( pid.toCharArray() );
                }
                else
                {
                    System.out.println( "Not handling Callback: " + cb.getClass() );
                }
            }
        }

    }
}


auth.conf in META-INF directory:


myDomain {
   org.jboss.security.ClientLoginModule required;
};


Can someone please help or point me to a working example in this forum or elsewhere in internet.
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/773633#773633]

Start a new discussion in EJB3 Development at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2030]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20121102/04218aca/attachment.html 


More information about the jboss-dev-forums mailing list