Merge "Provide the ability to set the truststore properties during model-loader startup" 1.4.0
authorTian Lee <TianL@amdocs.com>
Wed, 10 Apr 2019 13:40:08 +0000 (13:40 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 10 Apr 2019 13:40:08 +0000 (13:40 +0000)
src/main/java/org/onap/aai/modelloader/service/ModelLoaderService.java

index 35d8ada..c338e5b 100644 (file)
@@ -83,6 +83,21 @@ public class ModelLoaderService implements ModelLoaderInterface {
         try {
             configProperties.load(Files.newInputStream(Paths.get(configDir, "model-loader.properties")));
             config = new ModelLoaderConfig(configProperties);
+            
+            // Set the truststore for SDC Client to connect to Dmaap central bus if applicable (as in case of TI)
+            if (config.isUseHttpsWithDmaap()) {
+                String trustStorePath = config.getKeyStorePath();
+                String trustStorePassword = config.getKeyStorePassword();
+                if (trustStorePath != null && Paths.get(trustStorePath).toFile().isFile() && trustStorePassword != null
+                        && !trustStorePassword.isEmpty()) {
+                    System.setProperty("javax.net.ssl.trustStore", trustStorePath);
+                    System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);
+                } else {
+                    throw new IllegalArgumentException("Model Loader property ml.distribution.KEYSTORE_FILE "
+                               + "or ml.distribution.KEYSTORE_PASSWORD not set or invalid");
+                }
+            }
+            
             if (!config.getASDCConnectionDisabled()) {
                 initSdcClient();
             }