Я сталкиваюсь с ошибкой аутентификации SSl, используя smack во время установки соединения с сервером xmpp, что является случайным - PullRequest
0 голосов
/ 20 апреля 2019

Произошли следующие случайные ошибки, возникшие во время установки соединения с сервером xmpp.

1.SASLError с использованием SCRAM-SHA-1: не авторизовано

2.В ответ не поступиловремя ожидания ответаТайм-аут был 20000 мс (~ 20 с).В ожидании успешной аутентификации SASL в настоящее время я использую smack: 4.2.2

Я уже пробовал этот подход, но ничего не решает.

SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1)
SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5)
SASLAuthentication.unBlacklistSASLMechanism("PLAIN");

Код:

  private class ConnectionTask extends AsyncTask<Void, Void, Exception> {

              @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                    sendConnectionCallbacks(ConnectionStatus.connecting, null);
                }
                @Override
                protected Exception doInBackground(Void... voids) {
                    LOGGER.log(Level.INFO, "Connecting to XMPP server");
                    try {
                        if (!mConnection.isConnected())
                            mConnection.connect();
                        if (!mConnection.isAuthenticated()) {
                            //String authToken =PreferenceHelper.getObj().getUserToken().replace("token ","");
                            int resourceId = NTUtility.getRandomNumber(10000000, 1);

                            mConnection.login(mAccount.getmUserName(), mAccount.getmPassword(), Resourcepart.from(String.valueOf(resourceId)));
                        }
                        manageAutoDeliveryReceipts();

                    } catch (XMPPException | SmackException | IOException | InterruptedException e) {
                        e.printStackTrace();
                        return e;
                    }
                    return null;
                }
                @Override
                protected void onPostExecute(Exception exp) {
                    super.onPostExecute(exp);
                    if (exp != null) {
                        onConnectionClosedOnError(exp);
                        Log.d("connection", exp.getMessage());
                    } else {
                        LOGGER.log(Level.INFO, "Connection task completed successfully");
                    }
                }
            }
...