Contenu connexe
Similaire à Verschlüsselte Properties in Liquibase (6)
Verschlüsselte Properties in Liquibase
- 6. Problem
liquibase.properties | defaultsFile
driver: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/efinia
username: dbUser
password: superGeheim42!
Montag, 10. Dezember 12
- 8. Ursache
property member
liquibase.integration.commandline.Main.parsePropertiesFile
Montag, 10. Dezember 12
- 9. Lösung
+
Montag, 10. Dezember 12
- 10. Lösung
Encrypting
application Advanced
+
configuration configuration
files
Montag, 10. Dezember 12
- 11. Encrypting
application Advanced
+
configuration configuration
files
Montag, 10. Dezember 12
- 12. enc. property decrypt member
password
Montag, 10. Dezember 12
- 13. Lösung
EnvironmentStringPBEConfig pbeConfig = new EnvironmentStringPBEConfig();
pbeConfig.setPasswordEnvName(pbeVariable);
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setConfig(pbeConfig);
EncryptableProperties props = new EncryptableProperties(encryptor);
props.load(propertiesInputStream);
if (value.startsWith("ENC"))
{
String env = System.getenv(pbeVariable);
if (env == null || env.equals(""))
{
throw new RuntimeException("Unknown " + pbeVariable);
}
else
{
value = props.getProperty((String)entry.getKey());
}
}
Montag, 10. Dezember 12
- 14. Vorher
driver: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/efinia
username: dbUser
password: superGeheim42!
Nachher
driver: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/efinia
username: dbUser
password: ENC(23cdFlcaHt54dZHP1o1TBw6aqTVw4)
Montag, 10. Dezember 12
- 15. Don‘t repeat yourself
liquibase-core
liquibase.integration.commandline.Main.parsePropertiesFile
liquibase-maven-plugin
org.liquibase.maven.plugins.AbstractLiquibaseMojo.parsePropertiesFile
Montag, 10. Dezember 12