如何使用Java中的Smack XMPP库处理TLS证书

|| 嗨,大家好。我刚刚开始在服务器端和客户端都使用Java中的XMPP玩游戏。 在服务器端,我正在使用Apache Vysper 0.7,在客户端端,我正在使用Ignite Smack 3.1.0 我正在使用apache vysper演示页中的一台小型XMPP嵌入式服务器,该服务器使用源代码随附的TLS证书:
    XMPPServer server = new XMPPServer(\"localhost\");  

    StorageProviderRegistry providerRegistry = new MemoryStorageProviderRegistry();  

    AccountManagement accountManagement = (AccountManagement) providerRegistry.retrieve(AccountManagement.class);  

    Entity user = EntityImpl.parseUnchecked(\"user@localhost\");  
    accountManagement.addUser(user, \"password\");

    server.setStorageProviderRegistry(providerRegistry);  

    server.addEndpoint(new TCPEndpoint());  

    server.setTLSCertificateInfo(new File(\"bogus_mina_tls.cert\"), \"boguspw\");  

    server.start();  
    System.out.println(\"Vysper server is running...\");
问题在于这不是正确/有效的证书。如果我使用pidgin测试服务器,则会弹出一个警报窗口,告诉我证书无效,如果我想为此添加例外,则显示一个按钮。 我想用Smack api做同样的事情,但是我不知道怎么做。 在我的smack api上,我正在使用如下代码:
    ConnectionConfiguration config = new ConnectionConfiguration(\"localhost\",5222, \"localhost\");
    config.setSASLAuthenticationEnabled(false);

    connection = new XMPPConnection(config);
    connection.connect();

    connection.login(userName, password);
就是这样我需要怎么做才能接受或拒绝无效证书? 谢谢你的帮助。
已邀请:
在Apache Vysper的集成测试中,我们使用类似以下内容的东西:
ConnectionConfiguration connectionConfiguration = new ConnectionConfiguration(\"localhost\", 5222);
connectionConfiguration.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
connectionConfiguration.setSASLAuthenticationEnabled(true);
connectionConfiguration.setKeystorePath(\"src/main/resources/bogus_mina_tls.cert\");
connectionConfiguration.setTruststorePath(\"src/main/resources/bogus_mina_tls.cert\");
connectionConfiguration.setTruststorePassword(\"boguspw\");
参见例如:https://svn.apache.org/repos/asf/mina/vysper/trunk/server/core-inttest/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0199_xmppping/ AbstractIntegrationTestCase.java
我想你在找
config.setSelfSignedCertificateEnabled(true)

要回复问题请先登录注册