I'm using jclouds 1.8 to communicate with Openstack Keystone server.
The server is using a self-signed cert. My client detects SSL connection 
failure and allows the user to install the cert, which I add to JVM's trust 
store.

At this point I expect jclouds connections to succeed, but they continue to 
fail. Until I shutdown the client and restart.
If the JVM trust store is loaded with the cert before jclouds makes its first 
connection, all is good.
But if I change (add/remove) certs after the 1st connection is made, then the 
change in JVM's trust store does not take effect on jclouds.
(For reference, I'm using AWS SDK in the same client, and there the change 
takes effect immediately).

Does jclouds cache connections or contexts? Is there a way to make it "fully 
reconnect" (for a lack of a better term)?

My code to talk to Keystone is like this:
        KeystoneApi keystoneAPI = ContextBuilder.newBuilder(new 
KeystoneApiMetadata())
                .endpoint(url)
                .credentials(tenant + ":" + user, key)
                .buildApi(KeystoneApi.class);

        keystoneAPI.getServiceApi().listTenants();

PS: I am aware of Constants.PROPERTY_TRUST_ALL_CERTS, but that's not what I 
want.

Thanks,
Yury

Reply via email to