Не удается подключиться к моему серверу ejabberd с помощью Asmack

#android #keystore #ejabberd #asmack #sasl

#Android #хранилище ключей #ejabberd #asmack #sasl

Вопрос:

Получение этих ошибок в logcat:

06-26 02:34:08.352: W / System.err(1261): java.security.Исключение KeyStoreException: java.security.Исключение NoSuchAlgorithmException: реализация хранилища ключей jks не найдена 06-26 02:34:08.352: W / System.err(1261): в java.security.KeyStore.getInstance (KeyStore.java:119) 06-26 02:34:08.352: W /System.err(1261): в org.jivesoftware.smack.ServerTrustManager.(ServerTrustManager.java:71) 06-26 02:34:08.352: W /System.err(1261): в org.jivesoftware.smack.XMPPConnection.Продолжайте получать (XMPPConnection.java:858) 06-26 02:34:08.352: W /System.err(1261): в org.jivesoftware.smack.PacketReader.parsePackets (PacketReader.java:250) 06-26 02:34:08.352: W /System.err(1261): в org.jivesoftware.smack.PacketReader.access $ 000 (PacketReader.java:46) 06-26 02:34:08.362: W /System.err(1261): в org.jivesoftware.smack.PacketReader $ 1.выполнить (PacketReader.java:72) 06-26 02:34:08.362: W / System.err(1261): Вызвано: java.security.Исключение NoSuchAlgorithmException: реализация хранилища ключей jks не найдена 06-26 02:34:08.362: W / System.err(1261): в org.apache.harmony.security.fortress.Engine.NotFound (Engine.java:177) 06-26 02:34:08.362: W / System.err(1261): в org.apache.harmony.security.fortress.Engine.getInstance (Engine.java:151) 06-26 02:34:08.362: W /System.err(1261): в java.security.KeyStore.getInstance (KeyStore.java:116) 06-26 02:34:08.362: W/System.err(1261): … еще 5

06-26 02:34:09.802: W / System.err(1261): сбой аутентификации SASL с использованием механизма DIGEST-MD5: 06-26 02:34:09.802: W / System.err(1261): в org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:341) 06-26 02:34:09.802: W /System.err(1261): в org.jivesoftware.smack.XMPPConnection.вход в систему (XMPPConnection.java:242) 06-26 02:34:09.802: W /System.err(1261): в org.jivesoftware.smack.Подключение.вход в систему (Connection.java:371) 06-26 02:34:09.802: W/System.err(1261): в com.example.contactupdater.MainActivity $MainActivity2.login(MainActivity.java:358) 06-26 02:34:09.802: W/System.err(1261): в com.example.contactupdater.MainActivity $MainActivity2.login(MainActivity.java:347) 06-26 02:34:09.802: W/System.err(1261): в com.example.contactupdater.MainActivity $ 1.выполнить (MainActivity.java:320)

Комментарии:

1. Пожалуйста, покажите нам код, который вы используете для подключения к ejabberd, и какую версию Asmack вы используете.

2. Спасибо за ваш ответ, приятель, но я решил эту проблему, добавив путь к хранилищу ключей. добавит ответ. Спасибо

3. @Punit пожалуйста, отправьте ответ, я столкнулся с той же проблемой..

4. @shriduttkothari Пожалуйста, ознакомьтесь с моим ответом. и извините за задержку…

Ответ №1:

Вот ответ на эту проблему…

 AndroidConnectionConfiguration config = new AndroidConnectionConfiguration(server,
                port);
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
            config.setTruststoreType("AndroidCAStore");
            config.setTruststorePassword(null);
            config.setTruststorePath(null);
        } else {
            config.setTruststoreType("BKS");
            String path = System.getProperty("javax.net.ssl.trustStore");
            if (path == null)
                path = System.getProperty("java.home")   File.separator   "etc"
                      File.separator   "security"   File.separator
                      "cacerts.bks";
            config.setTruststorePath(path);
        }
 

Комментарии:

1. хорошая работа, но это удалит ошибку хранилища ключей, связанную с «Сбой аутентификации SASL с использованием механизма DIGEST-MD5». Я все еще сталкиваюсь с этой ошибкой после добавления вашего решения в мой код … надеюсь, вы скоро ответите!!!!

2. я сталкиваюсь с ошибкой при попытке входа в систему, вот ошибка проверки подлинности SASL трассировки стека с использованием механизма DIGEST-MD5: в org.jivesoftware.smack. SASLAuthentication.authenticate(SASLAuthentication.java:341) в org.jivesoftware.smack. XMPPConnection. войдите в систему (XMPPConnection.java:242) в org.jivesoftware.smack. Подключение. login(Connection.java:371) подскажите, в чем здесь проблема!!!

3. используете ли вы jid как JID@domain.com ? если да, пожалуйста, удалите @domain.com например, если у вас есть abc@domain.com затем используйте только abc в качестве имени пользователя.