Add support for basic-auth password obfuscation 97/55097/3
authorda490c <dave.adams@amdocs.com>
Wed, 20 Jun 2018 04:53:25 +0000 (00:53 -0400)
committerda490c <dave.adams@amdocs.com>
Wed, 20 Jun 2018 05:21:28 +0000 (01:21 -0400)
Issue-ID: AAI-1231
Change-Id: I6e3db5d5fc52e715cd6ebabf83b63fda1c787da4
Signed-off-by: da490c <dave.adams@amdocs.com>
sparkybe-onap-application/pom.xml
sparkybe-onap-service/src/main/java/org/onap/aai/sparky/dal/ActiveInventoryAdapter.java
sparkybe-onap-service/src/main/java/org/onap/aai/sparky/viewandinspect/config/SparkyConstants.java

index b08c9fd..cc5e004 100644 (file)
                <dependency>
                        <groupId>org.onap.aai</groupId>
                        <artifactId>rest-client</artifactId>
-                       <version>1.2.1</version>
+                       <version>1.3.0-SNAPSHOT</version>
                </dependency>
 
                <!-- https://mvnrepository.com/artifact/org.restlet.jee/org.restlet.ext.servlet -->
index 9d33a3b..656ffba 100644 (file)
@@ -47,7 +47,9 @@ import org.onap.aai.sparky.dal.rest.RestClientConstructionException;
 import org.onap.aai.sparky.dal.rest.RestClientFactory;
 import org.onap.aai.sparky.dal.rest.config.RestEndpointConfig;
 import org.onap.aai.sparky.logging.AaiUiMsgs;
+import org.onap.aai.sparky.util.Encryptor;
 import org.onap.aai.sparky.util.NodeUtils;
+import org.onap.aai.sparky.viewandinspect.config.SparkyConstants;
 
 /**
  * The Class ActiveInventoryAdapter.
@@ -87,6 +89,21 @@ public class ActiveInventoryAdapter {
     this.oxmModelLoader = oxmModelLoader;
     this.oxmEntityLookup = oxmEntityLookup;
     this.endpointConfig = endpointConfig;
+    
+    /*
+     * Add support for de-obfuscating basic auth password (if obfuscated)
+     */
+
+    if (endpointConfig.getRestAuthenticationMode() == RestAuthenticationMode.SSL_BASIC) {
+      String basicAuthPassword = endpointConfig.getBasicAuthPassword();
+
+      if (basicAuthPassword != null
+          && basicAuthPassword.startsWith(SparkyConstants.OBFUSCATION_PREFIX)) {
+        Encryptor enc = new Encryptor();
+        endpointConfig.setBasicAuthPassword(enc.decryptValue(basicAuthPassword));
+      }
+    }
+
     this.restClient = RestClientFactory.buildClient(endpointConfig);
 
   }
@@ -102,16 +119,15 @@ public class ActiveInventoryAdapter {
     headers.get(HEADER_TRANS_ID).add(TRANSACTION_ID_PREFIX + NodeUtils.getRandomTxnId());
 
     if (endpointConfig.getRestAuthenticationMode() == RestAuthenticationMode.SSL_BASIC) {
-
       headers.putIfAbsent(HEADER_AUTHORIZATION, new ArrayList<String>());
       headers.get(HEADER_AUTHORIZATION).add(getBasicAuthenticationCredentials());
-
     }
 
     return headers;
   }
 
   protected String getBasicAuthenticationCredentials() {
+
     String usernameAndPassword = String.join(":", endpointConfig.getBasicAuthUserName(),
         endpointConfig.getBasicAuthPassword());
     return "Basic " + java.util.Base64.getEncoder().encodeToString(usernameAndPassword.getBytes());
index e3c2577..b5f72bc 100644 (file)
@@ -26,6 +26,7 @@ package org.onap.aai.sparky.viewandinspect.config;
 public class SparkyConstants {
 
   public static String APP_NAME = "AAIUI";
+  public static final String OBFUSCATION_PREFIX = "OBF:";
 
   /** Default to unix file separator if system property file.separator is null */
   public static final String FILESEP =