import java.util.LinkedHashMap;
import java.util.Map;
+import org.apache.commons.lang.StringUtils;
import org.eclipse.jetty.util.security.Password;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.PropertySource;
public class PropertyPasswordConfiguration
- implements ApplicationContextInitializer<ConfigurableApplicationContext> {
+ implements ApplicationContextInitializer<ConfigurableApplicationContext> {
private static final String JETTY_OBFUSCATION_PATTERN = "OBF:";
+ private static final String ENV = "ENV:";
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
decodePasswords(propertySource, propertyOverrides);
if (!propertyOverrides.isEmpty()) {
PropertySource<?> decodedProperties =
- new MapPropertySource("decoded " + propertySource.getName(), propertyOverrides);
+ new MapPropertySource("decoded " + propertySource.getName(), propertyOverrides);
environment.getPropertySources().addBefore(propertySource.getName(), decodedProperties);
}
}
if (rawValueString.startsWith(JETTY_OBFUSCATION_PATTERN)) {
String decodedValue = Password.deobfuscate(rawValueString);
propertyOverrides.put(key, decodedValue);
+ } else if(rawValueString.startsWith(ENV)){
+ String decodedValue = System.getProperty(StringUtils.removeStart(rawValueString, ENV));
+ propertyOverrides.put(key, decodedValue);
}
}
}