1

我正在使用 asmack-android-8-4.0.6.jar 作为 xmpp 的库,我能够与早期版本的 asmack lib 连接,但是有了这个新的最新库,我遇到了异常,请帮助我如何启用使用最新的 asmack lib 进行 SSL 身份验证,我没有找到 connConfig.setSASLAuthenticationEnabled(true); 最新库中的方法

    ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST,PORT);
//connConfig.setSASLAuthenticationEnabled(true);
// connConfig.setCompressionEnabled(true);
connConfig.setSecurityMode(SecurityMode.enabled);
connConfig.setDebuggerEnabled(true);
connConfig.setSocketFactory(new DummySSLSocketFactory());
connection = new XMPPTCPConnection(connConfig);
try {
    connection.connect();
    Log.i(TAG, "Connected to " + connection.getServiceName());
} catch (XMPPException ex) {
    Log.e(TAG, "Failed to connect to " + connection.getHost());
    Log.e(TAG, ex.toString());
    return null;
    //setConnection(null);
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

下面是堆栈跟踪

12-02 12:56:14.612: W/System.err(23797): javax.net.ssl.SSLException: Connection closed by peer
12-02 12:56:14.622: W/System.err(23797):    at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
12-02 12:56:14.622: W/System.err(23797):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:378)
12-02 12:56:14.622: W/System.err(23797):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.<init>(OpenSSLSocketImpl.java:649)
12-02 12:56:14.622: W/System.err(23797):    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getInputStream(OpenSSLSocketImpl.java:620)
12-02 12:56:14.622: W/System.err(23797):    at org.jivesoftware.smack.tcp.XMPPTCPConnection.initReaderAndWriter(XMPPTCPConnection.java:507)
12-02 12:56:14.622: W/System.err(23797):    at org.jivesoftware.smack.tcp.XMPPTCPConnection.initConnection(XMPPTCPConnection.java:457)
12-02 12:56:14.622: W/System.err(23797):    at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:440)
12-02 12:56:14.622: W/System.err(23797):    at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:811)
12-02 12:56:14.622: W/System.err(23797):    at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:396)
12-02 12:56:14.622: W/System.err(23797):    at com.mydoc.pro.messenger.net.XMPPConnectAsyncTask.setXMPPConnection(XMPPConnectAsyncTask.java:92)
12-02 12:56:14.622: W/System.err(23797):    at com.mydoc.pro.messenger.net.XMPPConnectAsyncTask.doInBackground(XMPPConnectAsyncTask.java:61)
12-02 12:56:14.622: W/System.err(23797):    at com.mydoc.pro.messenger.net.XMPPConnectAsyncTask.doInBackground(XMPPConnectAsyncTask.java:1)
12-02 12:56:14.622: W/System.err(23797):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-02 12:56:14.622: W/System.err(23797):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-02 12:56:14.622: W/System.err(23797):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-02 12:56:14.622: W/System.err(23797):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-02 12:56:14.622: W/System.err(23797):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-02 12:56:14.622: W/System.err(23797):    at java.lang.Thread.run(Thread.java:856)
12-02 12:56:14.622: I/XMPPConnectAsyncTask(23797): No connection to server null
12-02 12:56:14.622: W/System.err(23797): org.jivesoftware.smack.SmackException$NotConnectedException
12-02 12:56:14.632: W/System.err(23797):    at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:584)
12-02 12:56:14.632: W/System.err(23797):    at com.mydoc.pro.messenger.net.XMPPConnectAsyncTask.setXMPPConnection(XMPPConnectAsyncTask.java:117)
12-02 12:56:14.632: W/System.err(23797):    at com.mydoc.pro.messenger.net.XMPPConnectAsyncTask.doInBackground(XMPPConnectAsyncTask.java:61)
12-02 12:56:14.632: W/System.err(23797):    at com.mydoc.pro.messenger.net.XMPPConnectAsyncTask.doInBackground(XMPPConnectAsyncTask.java:1)
12-02 12:56:14.632: W/System.err(23797):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-02 12:56:14.632: W/System.err(23797):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-02 12:56:14.632: W/System.err(23797):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-02 12:56:14.632: W/System.err(23797):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-02 12:56:14.632: W/System.err(23797):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-02 12:56:14.632: W/System.err(23797):    at java.lang.Thread.run(Thread.java:856)
4

1 回答 1

2
connConfig.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

使用安全模式禁用现在正在工作

于 2014-12-02T08:04:40.400 回答