package org.onap.aai.restclient;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.security.KeyStore;
-
-import javax.annotation.PostConstruct;
-import javax.net.ssl.SSLContext;
-
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
+import org.onap.aai.aailog.filter.RestClientLoggingInterceptor;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.util.ResourceUtils;
import org.springframework.web.client.RestTemplate;
+import javax.annotation.PostConstruct;
+import javax.net.ssl.SSLContext;
+
public abstract class OneWaySSLRestClient extends RestClient {
- private static EELFLogger logger = EELFManager.getInstance().getLogger(OneWaySSLRestClient.class);
+ private static Logger logger = LoggerFactory.getLogger(OneWaySSLRestClient.class);
private RestTemplate restTemplate;
@PostConstruct
public void init() throws Exception {
+ restTemplate =
+ new RestTemplateBuilder().requestFactory(this.getHttpRequestFactory()).build();
+
+ restTemplate.setErrorHandler(new RestClientResponseErrorHandler());
+ RestClientLoggingInterceptor loggingInterceptor = new RestClientLoggingInterceptor();
+ restTemplate.getInterceptors().add(loggingInterceptor);
+
+ }
+
+ protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception {
+ return new HttpComponentsClientHttpRequestFactory(this.getClient());
+ }
+
+ protected HttpClient getClient() throws Exception {
char[] trustStorePassword = getTruststorePassword();
String trustStore = getTruststorePath();
- SSLContext sslContext = SSLContextBuilder.create()
+ SSLContext sslContext =
+ SSLContextBuilder.create()
.loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword).build();
HttpClient client =
- HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier((s, sslSession) -> true).build();
-
- restTemplate =
- new RestTemplateBuilder().requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client)).build();
-
- restTemplate.setErrorHandler(new RestClientResponseErrorHandler());
+ HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier((s, sslSession) -> true).build();
+ return client;
}
protected abstract String getTruststorePath();