Reputation: 842
I want to make a connection to an https server using SSL client authentication and SSL caching. As far as I can tell you can only have one or the other and I dont see a reason why that would be.
Currently I am using a DefaultHttpClient which takes a ClientConnectionManager which I have set up with an SSLSocketFactory loaded with a pkcs12 KeyStore so I can perform the SSL client authentication.
I also found SSLCertificateSocketFactory.getHttpSocketFactory() which can be passed an SSLSessionCache.
I then register the socket factory
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https",socketFactory , port));
and use the registry to make a ClientConnectionManager and then an HttpClient
ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(httpParameters, registry);
httpClient = new DefaultHttpClient(ccm, httpParameters);
but I dont know how to give either the SSLSocketFactory an SSLSessionCache, or the SSLCertificateSocketFactory a keystore
Lastly I looked into using an AndroidHttpClient which you can pass a Context which it will use for SSLCaching, but I cannot find any way to get an AndroidHttpClient to use my ClientConnectionManager.
Am I missing something or is this really impossible?
Thanks
Upvotes: 1
Views: 1009
Reputation: 461
HttpClient has SSL session caching inbuilt, SSLSessionCache is for HttpsURLConnection as I understand it.
It's not very well documented is it.
Upvotes: 1