0 Replies Latest reply on Nov 7, 2013 4:28 AM by Arun Varadharajan

    Client authentication failed for mechanism JBOSS-LOCAL-USER:

    Arun Varadharajan Newbie

      When I'm trying to access the EJB from remote client, I'm getting exception as below:

       

       

      2013-11-06 19:47:38,044 DEBUG [ApplicationMain] - Looking for jboss-naming-client.properties using classloader com.sun.jnlp.JNLPClassLoader@1394894
      2013-11-06 19:47:38,044 DEBUG [ApplicationMain] - jboss.naming.client.endpoint.create.options. has the following options {}
      2013-11-06 19:47:38,044 DEBUG [ApplicationMain] - jboss.naming.client.remote.connectionprovider.create.options. has the following options {}
      2013-11-06 19:47:38,044 DEBUG [ApplicationMain] - jboss.naming.client.connect.options. has the following options {org.xnio.Options.SASL_POLICY_NOPLAINTEXT=>false}
      2013-11-06 19:47:38,059 DEBUG [ndpoint" task-3] - Client authentication failed for mechanism JBOSS-LOCAL-USER: javax.security.sasl.SaslException: Failed to read server challenge [Caused by java.io.FileNotFoundException: D:\Upgrade\OFF2\export\home\application\zic\jboss-as-7.1.1.Final\standalone\tmp\auth\challenge-6842367 (The system cannot find the path specified)]
      2013-11-06 19:47:38,062 ERROR [ndpoint" read-1] - JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Cannot get userid/password [Caused by javax.security.auth.callback.UnsupportedCallbackException]
      2013-11-06 19:47:38,068 WARN  [ApplicationMain] - .<init>Failed to create remoting connection
      javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: javax.security.sasl.SaslException: Cannot get userid/password [Caused by javax.security.auth.callback.UnsupportedCallbackException]]
        at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36)
        at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121)
        at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
        at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
        at javax.naming.InitialContext.init(Unknown Source)
        at javax.naming.InitialContext.<init>(Unknown Source)
        at com.alcatel.gem.gui.fwk.Commander.<init>(Commander.java:200)
        at com.alcatel.gem.gui.fwk.domain.EquipmentCommander.<init>(EquipmentCommander.java:74)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.alcatel.gem.gui.fwk.Model.bindServants(Model.java:280)
        at com.alcatel.gem.gui.fwk.Model.<init>(Model.java:81)
        at com.alcatel.gem.gui.fwk.Model.init(Model.java:96)
        at com.alcatel.gem.gui.common.MainSnapIn.populate(MainSnapIn.java:2165)
        at com.alcatel.almap.amc.navtable.AmcClient.populate(AmcClient.java:697)
        at com.alcatel.almap.amc.navtable.AmcClient.start(AmcClient.java:238)
        at com.alcatel.almap.amc.psi.PrimarySnapIn.start(PrimarySnapIn.java:96)
        at com.alcatel.gem.gui.common.MainSnapIn.start(MainSnapIn.java:287)
        at com.alcatel.amv.fwk.gui.ClientProxy.loadClient(ClientProxy.java:160)
        at com.alcatel.amv.fwk.gui.ClientProxy.initialStart(ClientProxy.java:124)
        at com.alcatel.amv.fwk.gui.ClientManager.startInitialApplications(ClientManager.java:410)
        at com.alcatel.amv.fwk.gui.ClientManager.start(ClientManager.java:92)
        at com.alcatel.amv.fwk.gui.FwkMain.<init>(FwkMain.java:73)
        at com.alcatel.amv.fwk.gui.FwkMain.start(FwkMain.java:348)
        at com.alcatel.amv.fwk.gui.FwkMain.main(FwkMain.java:261)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.javaws.Launcher.executeApplication(Unknown Source)
        at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
        at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
        at com.sun.javaws.Launcher.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.RuntimeException: javax.security.sasl.SaslException: Cannot get userid/password [Caused by javax.security.auth.callback.UnsupportedCallbackException]
        at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:87)
        at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56)
        at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166)
        at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139)
        at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104)
        ... 34 more
      Caused by: javax.security.sasl.SaslException: Cannot get userid/password [Caused by javax.security.auth.callback.UnsupportedCallbackException]
        at com.sun.security.sasl.ClientFactoryImpl.getUserInfo(Unknown Source)
        at com.sun.security.sasl.ClientFactoryImpl.createSaslClient(Unknown Source)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities$1.run(ClientConnectionOpenListener.java:352)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities$1.run(ClientConnectionOpenListener.java:350)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:350)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:214)
        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)
        at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:189)
        at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:103)
        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)
        at org.xnio.nio.NioHandle.run(NioHandle.java:90)
        at org.xnio.nio.WorkerThread.run(WorkerThread.java:184)
        at ...asynchronous invocation...(Unknown Source)
        at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:270)
        at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:251)
        at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:349)
        at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:333)
        at org.jboss.naming.remote.client.EndpointCache$EndpointWrapper.connect(EndpointCache.java:105)
        at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:55)
        ... 37 more
      Caused by: javax.security.auth.callback.UnsupportedCallbackException
        at org.jboss.naming.remote.client.InitialContextFactory$AnonymousCallbackHandler.handle(InitialContextFactory.java:348)
        at com.sun.security.sasl.ClientFactoryImpl.getUserInfo(Unknown Source)
        at com.sun.security.sasl.ClientFactoryImpl.createSaslClient(Unknown Source)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities$1.run(ClientConnectionOpenListener.java:352)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities$1.run(ClientConnectionOpenListener.java:350)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:350)
        at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:214)
        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)
        at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:189)
        at org.xnio.channels.TranslatingSuspendableChannel$1.handleEvent(TranslatingSuspendableChannel.java:103)
        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)
        at org.xnio.nio.NioHandle.run(NioHandle.java:90)
        at org.xnio.nio.WorkerThread.run(WorkerThread.java:184)
      

       

      and my new InitialCotext() is getting failed. Hence, I'm not able to lookup any EJBs using remote client.

      My context properties are as below:

       

      java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
      java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
      jboss.naming.client.ejb.context = true
      java.naming.security.principal=avaradha
      java.naming.security.credentials=xxxx@123
      jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=false
      java.naming.provider.url=remote://xxx.xxx.xxx.xxx:4447
      
      
                  Properties clientProp = new Properties();
                  clientProp.put("endpoint.name", "client-endpoint");
                  clientProp.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
                  clientProp.put("remote.connections", "default");
                  clientProp.put("remote.connection.default.port", "3843");
                  clientProp.put("remote.connection.default.host", gemServerIp);
                  clientProp.put("remote.connection.default.username",  GemJaasUtils.getInstance().getLoginUsername());
                  clientProp.put("remote.connection.default.password", GemJaasUtils.getInstance().getLoginPwd());
                  clientProp.put("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false");
                  clientProp.put("remote.connection.default.connect.options.org.xnio.Options.SASL_DISALLOWED_MECHANISMS", "JBOSS-LOCAL-USER");
                  clientProp.put("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false");
      
      
                  EJBClientConfiguration cc = new PropertiesBasedEJBClientConfiguration(clientProp);
                  ContextSelector<EJBClientContext> selector = new ConfigBasedEJBClientContextSelector(cc);
                  EJBClientContext.setSelector(selector);
      
      

       

       

      Please help.