aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2019-07-22 11:21:05 +0300
committerIttay Stern <ittay.stern@att.com>2019-07-22 11:36:00 +0300
commit673b18baae5db233d3da2a2b40f9b5d772c6cee2 (patch)
tree92e9f6d933d1c7217864c50bed8145621e9cd538
parent7777af2d57f3461b06f8c787cfb6e33c3b01e8a6 (diff)
Allow full-path to certificate and remove implicit Optional::toString
1) If getAAITruststoreFilename or getAAIKeystoreFilename has a file separator -- don't append certFilePath to filename. 2) getKeystorePath() is issuing Optional::orElse, as the code `+ getAAIKeystoreFilename()` is implicitly calling `getAAIKeystoreFilename().toString()` which yields a default toString e.g. "Optional[configValue]". Issue-ID: VID-229 Change-Id: I9c135cc3dfd72cdc203b59d78162a568a6dbd688 Signed-off-by: Ittay Stern <ittay.stern@att.com>
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/aai/util/HttpsAuthClient.java15
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/aai/util/HttpsAuthClientTest.java31
2 files changed, 40 insertions, 6 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/aai/util/HttpsAuthClient.java b/vid-app-common/src/main/java/org/onap/vid/aai/util/HttpsAuthClient.java
index e2a6d0e04..af181eb1f 100644
--- a/vid-app-common/src/main/java/org/onap/vid/aai/util/HttpsAuthClient.java
+++ b/vid-app-common/src/main/java/org/onap/vid/aai/util/HttpsAuthClient.java
@@ -116,13 +116,13 @@ public class HttpsAuthClient {
return new NoopHostnameVerifier();
}
- private String getKeystorePath() {
- return getCertificatesPath() + FileSystems.getDefault().getSeparator() + systemPropertyHelper.getAAIKeystoreFilename();
+ protected String getKeystorePath() {
+ return systemPropertyHelper.getAAIKeystoreFilename().map(this::getCertificatesPathOf).orElse("");
}
private void setSystemProperties() {
- System.setProperty(SSL_TRUST_STORE, getCertificatesPath() + FileSystems.getDefault().getSeparator() +
- systemPropertyHelper.getAAITruststoreFilename().orElse(""));
+ System.setProperty(SSL_TRUST_STORE,
+ systemPropertyHelper.getAAITruststoreFilename().map(this::getCertificatesPathOf).orElse(""));
System.setProperty(SSL_TRUST_STORE_PASS_WORD, systemPropertyHelper.getDecryptedTruststorePassword());
}
@@ -135,8 +135,11 @@ public class HttpsAuthClient {
return config;
}
- private String getCertificatesPath() {
- return certFilePath;
+ private String getCertificatesPathOf(String fileName) {
+ if (fileName.contains("/") || fileName.contains("\\")) {
+ return fileName;
+ }
+ return certFilePath + FileSystems.getDefault().getSeparator() + fileName;
}
}
diff --git a/vid-app-common/src/test/java/org/onap/vid/aai/util/HttpsAuthClientTest.java b/vid-app-common/src/test/java/org/onap/vid/aai/util/HttpsAuthClientTest.java
index 3336a8af9..b48efd619 100644
--- a/vid-app-common/src/test/java/org/onap/vid/aai/util/HttpsAuthClientTest.java
+++ b/vid-app-common/src/test/java/org/onap/vid/aai/util/HttpsAuthClientTest.java
@@ -22,6 +22,7 @@
package org.onap.vid.aai.util;
+import java.nio.file.FileSystems;
import org.mockito.Mock;
import org.onap.vid.aai.exceptions.HttpClientBuilderException;
@@ -33,6 +34,7 @@ import org.togglz.core.manager.FeatureManager;
import javax.net.ssl.SSLContext;
import java.util.Optional;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
import static org.mockito.MockitoAnnotations.initMocks;
@@ -55,6 +57,7 @@ public class HttpsAuthClientTest {
public void setUp() throws Exception {
initMocks(this);
when(systemPropertyHelper.getAAITruststoreFilename()).thenReturn(Optional.of("filename"));
+ when(systemPropertyHelper.getAAIKeystoreFilename()).thenReturn(Optional.of("keystorefilename"));
when(systemPropertyHelper.getDecryptedKeystorePassword()).thenReturn("password");
when(systemPropertyHelper.getDecryptedTruststorePassword()).thenReturn("password");
}
@@ -79,6 +82,34 @@ public class HttpsAuthClientTest {
}
@Test
+ public void getKeystorePath_whenNotConfigured_yieldEmptyString() {
+ // when
+ when(sslContextProvider.getSslContext(anyString(), anyString(), any())).thenReturn(sslContext);
+
+ //then
+ assertThat(createTestSubject().getKeystorePath()).isEqualTo(CERT_FILE_PATH + FileSystems.getDefault().getSeparator() + "keystorefilename");
+ }
+
+ @Test
+ public void getKeystorePath_whenConfigured_yieldPathAndFile() {
+ // when
+ when(systemPropertyHelper.getAAIKeystoreFilename()).thenReturn(Optional.empty());
+
+ //then
+ assertThat(createTestSubject().getKeystorePath()).isEqualTo("");
+ }
+
+ @Test
+ public void getKeystorePath_whenConfiguredWithSlash_yieldFilenameWithoutPath() {
+ // when
+ final String filenameWithSlash = "/path/to/keystorefilename";
+ when(systemPropertyHelper.getAAIKeystoreFilename()).thenReturn(Optional.of(filenameWithSlash));
+
+ //then
+ assertThat(createTestSubject().getKeystorePath()).isEqualTo(filenameWithSlash);
+ }
+
+ @Test
public void testGetUnsecuredClient() throws Exception {
// when
when(systemPropertyHelper.isClientCertEnabled()).thenReturn(false);