* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
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.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
-import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.onap.aai.aailog.filter.RestClientLoggingInterceptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
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;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.security.KeyStore;
-
public abstract class TwoWaySSLRestClient extends RestClient {
- private static EELFLogger logger = EELFManager.getInstance().getLogger(TwoWaySSLRestClient.class);
+ private static Logger logger = LoggerFactory.getLogger(TwoWaySSLRestClient.class);
private RestTemplate restTemplate;
@PostConstruct
public void init() throws Exception {
+ restTemplate = new RestTemplate();
+ restTemplate.setRequestFactory(this.getHttpRequestFactory());
+ 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[] keyStorePassword = getKeystorePassword();
char[] trustStorePassword = getTruststorePassword();
String keyStore = getKeystorePath();
String trustStore = getTruststorePath();
- SSLContext sslContext = SSLContextBuilder
- .create()
- .loadKeyMaterial(loadPfx(keyStore, keyStorePassword), keyStorePassword)
- .loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword)
- .build();
+ SSLContext sslContext =
+ SSLContextBuilder.create().loadKeyMaterial(loadPfx(keyStore, keyStorePassword), keyStorePassword)
+ .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());
+ HttpClient client =
+ HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier((s, sslSession) -> true).build();
+ return client;
}
private KeyStore loadPfx(String file, char[] password) throws Exception {