Minor Improvement
[clamp.git] / src / main / java / org / onap / clamp / clds / util / CryptoUtils.java
index 9f40810..07c4147 100644 (file)
@@ -65,6 +65,12 @@ public final class CryptoUtils {
      * Definition of encryption algorithm.
      */
     private static final String ALGORITHM = "AES";
+    
+    /**
+     * AES Encryption Key environment variable for external configuration
+     */
+    private static final String AES_ENCRYPTION_KEY = "AES_ENCRYPTION_KEY";
+    
     /**
      * Detailed definition of encryption algorithm.
      */
@@ -156,8 +162,15 @@ public final class CryptoUtils {
     private static SecretKeySpec readSecretKeySpec(String propertiesFileName) {
         Properties props = new Properties();
         try {
-            props.load(ResourceFileUtil.getResourceAsStream(propertiesFileName));
-            return getSecretKeySpec(props.getProperty(KEY_PARAM));
+               //Workaround fix to make encryption key configurable.
+               //System environment variable takes precedence for over clds/key.properties
+               String encryptionKey = System.getenv(AES_ENCRYPTION_KEY);
+               if(encryptionKey != null && encryptionKey.trim().length() > 0) {
+                       return getSecretKeySpec(encryptionKey);
+               } else {
+                       props.load(ResourceFileUtil.getResourceAsStream(propertiesFileName));
+                return getSecretKeySpec(props.getProperty(KEY_PARAM));
+               }
         } catch (IOException | DecoderException e) {
             logger.error("Exception occurred during the key reading", e);
             return null;