Smack 4.1 SASL authentication error

I am using Smack 4.1 native library for android to develop a chat application. I’m able to set a connection between my application and my server but I’m getting some errors regarding SASL authentication while logging in.

Points to be noted.

  1. There is no SASL authentication required on my server side.

  2. My application is not crashing but getting the following errors which i have shown below in my log cat snnippet.
    I’m using eclipse Luna and JDK version 1.7 and I have included the following libraries in the libs folder.

  3. jxmpp-core-0.4.1

  4. jxmpp-util-cache-0.4.1

  5. minidns-0.1.1

  6. smack-android-4.1.0.jar

  7. smack-android-extensions-4.1.0

  8. smack-core-4.1.0

  9. smack-extensions-4.1.0

  10. smack-im-4.1.0

  11. smack-tcp-4.1.0
    This is my code which I’m using to establish a connection.

XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration
  .builder();
  configBuilder.setUsernameAndPassword(userName, pass);
  configBuilder
  .setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled);
  configBuilder.setResource("testServices");
  configBuilder.setServiceName(DOMAIN);
  configBuilder.setPort(PORT);
  configBuilder.setHost(DOMAIN);
  configBuilder.setDebuggerEnabled(true);
  AbstractXMPPConnection connection = new XMPPTCPConnection(
  configBuilder.build());
  /** Connecting to the server */
  try {
  connection.connect();
  Log.i(TAG, "Connected to " + connection.getHost());
  } catch (SmackException e) {
  e.printStackTrace();
  } catch (IOException e) {
  e.printStackTrace();
  } catch (XMPPException e) {
  Log.e(TAG, "Failed to connect to " + connection.getHost());
  Log.e(TAG, e.toString());
  e.printStackTrace();
  }
  /** LogingIn to the server */
  try {
  connection.login(userName, pass);
  } catch (XMPPException e) {
  e.printStackTrace();
  } catch (SmackException e) {
  e.printStackTrace();
  } catch (IOException e) {
  e.printStackTrace();
  }
  /** LogingOut from the server */
  connection.disconnect();

And this is my Logcat output.

04-20 22:22:51.584: D/SMACK(8335): SENT (0): <stream:stream xmlns='jabber:client' to='my_server_url' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='10001@my_server_url' xml:lang='en'>
04-20 22:22:52.519: D/SMACK(8335): RECV (0): <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" version="1.0" id="0768491716592086" from="my_server_url">
04-20 22:22:53.744: D/SMACK(8335): RECV (0): <stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms></stream:features>
04-20 22:22:53.749: I/(8335): Connected to "smy_server_url"
04-20 22:22:53.754: W/System.err(8335): org.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:254)
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:365)
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:427)
04-20 22:22:53.759: W/System.err(8335): at com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:120)
04-20 22:22:53.759: W/System.err(8335): at com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:1)
04-20 22:22:53.759: W/System.err(8335): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-20 22:22:53.759: W/System.err(8335): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-20 22:22:53.759: W/System.err(8335): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-20 22:22:53.764: W/System.err(8335): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-20 22:22:53.764: W/System.err(8335): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-20 22:22:53.764: W/System.err(8335): at java.lang.Thread.run(Thread.java:841)
04-20 22:22:53.784: D/SMACK(8335): SENT (0): <presence id='PwoLk-3' type='unavailable'><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>
04-20 22:22:53.789: D/SMACK(8335): SENT (0): </stream:stream>
04-20 22:22:53.864: E/ViewRootImpl(8335): sendUserActionEvent() mView == null
04-20 22:22:53.939: E/MoreInfoHPW_ViewGroup(8335): Parent view is not a TextView
04-20 22:22:54.149: D/mali_winsys(8335): new_window_surface returns 0x3000

I have sorted out the above problem by importing smack-sasl-provided-4.1.0.jar.

2 Likes