How to use smack XMPP library to process TLS certificates in Java
Hi, everyone I have just started using XMPP in Java, including server and client
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...");
The problem is that this is not a correct / valid certificate If I use Pidgin to test my server, a warning window will pop up and tell me that the certificate is invalid, as well as a button in case I want to add an exception
I want to do the same thing with smack API, but I don't know how to do it
On my smack API, I use something like this:
ConnectionConfiguration config = new ConnectionConfiguration("localhost",5222,"localhost");
config.setSASLAuthenticationEnabled(false);
connection = new XMPPConnection(config);
connection.connect();
connection.login(userName,password);
So that's it What is required to accept or reject an invalid certificate? Thanks for your help.
Solution
In the integration test of Apache vysper, we use something similar:
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");
See, for example: 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
