From 6c494d06a7a0c0492f4c7bc42cebd42222fa44f1 Mon Sep 17 00:00:00 2001 From: Dominik Mizyn Date: Thu, 13 Feb 2020 15:04:53 +0100 Subject: Allow storing database password in environment variables This patch allows to store and get database passwor from environment variables. This is needed if we want to send those variables by helm secrets. Issue-ID: OOM-2287 Change-Id: Id9ea8f43dd07c2b0cdeaa6d14a8033336d26923f Signed-off-by: Dominik Mizyn --- .../models/provider/impl/DatabasePolicyModelsProviderImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'models-provider/src') diff --git a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java index 08c01b68f..50c739059 100644 --- a/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java +++ b/models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java @@ -101,7 +101,7 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { daoParameters.setPersistenceUnit(parameters.getPersistenceUnit()); // Decode the password using Base64 - String decodedPassword = new String(Base64.getDecoder().decode(parameters.getDatabasePassword())); + String decodedPassword = new String(Base64.getDecoder().decode(getValue(parameters.getDatabasePassword()))); // @formatter:off Properties jdbcProperties = new Properties(); @@ -125,6 +125,13 @@ public class DatabasePolicyModelsProviderImpl implements PolicyModelsProvider { } } + private String getValue(final String value) { + if (value != null && value.matches("[$][{].*[}]$")) { + return System.getenv(value.substring(2, value.length() - 1)); + } + return value; + } + @Override public void close() throws PfModelException { LOGGER.debug("closing the database connection to {} using persistence unit {}", parameters.getDatabaseUrl(), -- cgit 1.2.3-korg