Quantcast
Channel: Ignite Realtime : Discussion List - All Communities
Viewing all articles
Browse latest Browse all 10742

aSmack 4.1: SASL Authentication failed. No known authentication mechanisims.

$
0
0

I do not understand how to connect to my ejabberd server using aSmack 4.1 alpha. Every thing I try results in SASL errors. It appears that SASLAuthentication doesn't have any registered SASLMechanisms which doesn't make sense to me. The read me suggest calling SmackAndroid.init(context), but there is no such class in aSmack 4.1. I have the following jars included in my Android project:

android-support-v4.jar

jxmpp-core-0.4.0.jar

jxmpp-util-cache-0.4.0.jar

smack-android-4.1.0-alpha1.jar

smack-core-4.1.0-alpha1.jar

smack-tcp-4.1.0-alpha1.jar

 

The following is a simplified example of the code I am running.

String userName = "bob@localhost";

String password = "password";

 

 

config.setSecurityMode(SecurityMode.enabled);

config.setCompressionEnabled(true);

config.setDebuggerEnabled(true);

config.setSendPresence(true);

config.setReconnectionAllowed(true);

TrustManager[] trustAllCerts = new TrustManager[] {

     new X509TrustManager() {    

         public java.security.cert.X509Certificate[] getAcceptedIssuers() {

          return new X509Certificate[0];

         }

         public void checkClientTrusted(

        X509Certificate[] certs,

        String authType) {

         }

         public void checkServerTrusted(

        X509Certificate[] certs,

        String authType) {

         }

     }

  };

HostnameVerifier verifier = new HostnameVerifier() {

 

  @Override

  public boolean verify(String hostname, SSLSession session) {

  if (BuildConfig.DEBUG) {

  Log.d(ChatTranslator.APPLICATION_NAME, "Hostname: " + hostname);

  }

  return true;

  }

};

try {

  SSLContext context= SSLContext.getInstance("SSL");

  context.init(null, trustAllCerts, new java.security.SecureRandom());

  config.setCustomSSLContext(context);

  config.setHostnameVerifier(verifier);

} catch (Exception e) {

  if (BuildConfig.DEBUG) {

  Log.e(ChatTranslator.APPLICATION_NAME, "Dummy SSL", e);

  }

}

AbstractXMPPConnection connection = new XMPPTCPConnection(config);

if (!connection.isConnected()) {

  try {

  this.connection.connect();

  } catch (IOException e) {

  throw new NetworkFault(e);

  } catch (Exception e) {

  throw new ConfigurationFault(e);

  }

  try {

  connection.login(userName, password);

  } catch (IOException e) {

  throw new NetworkFault(e);

  } catch (Exception e) {

  throw new AuthenticationFault(e);

  }

  Roster roster = connection.getRoster();

}

 

I have tried to register my own SASLMechanisms but I must not have the implementation correct because those throw errors too.

 

How do I get aSmack 4.1 to authenticate? How do I register the necessary SASLMechanisms? Does 4.1 alpha not support SASL yet?


Viewing all articles
Browse latest Browse all 10742

Trending Articles