private KeyStore loadKeyStore() throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException {
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
InputStream instream = this.keyStoreResource.getInputStream();
keyStore.load(instream, keyStorePassword.toCharArray());
instream.close();
return keyStore;
}
@PostConstruct
private void init() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, KeyManagementException, UnrecoverableKeyException {
SSLContext sslContext = new SSLContextBuilder()
.loadKeyMaterial(
this.loadKeyStore(),
keyStorePassword.toCharArray()
).build();
SSLSocketFactory socketFactory =
new SSLSocketFactory(sslContext);
HttpClient authenticatedHttpClient = new StdHttpClient.Builder()
.url(dbUrl)
.username(dbUser)
.password(dbPassword)
.enableSSL(true)
.sslSocketFactory(socketFactory)
.socketTimeout(dbTimeout)
.build();
CouchDbInstance dbInstance = new StdCouchDbInstance(authenticatedHttpClient);
this.db = new StdCouchDbConnector("tc-user", dbInstance);
db.createDatabaseIfNotExists();
}