Verschlüsselte Properties in Liquibase

Preview:

Citation preview

Verschlüsselte Propertiesfür Liquibase

JUG Saxony Happy Hour 06. Dezember 2012

Montag, 10. Dezember 12

Dominik Hirt

Montag, 10. Dezember 12

http://www.efinia.de

Montag, 10. Dezember 12

Personal Finance Management

Montag, 10. Dezember 12

Montag, 10. Dezember 12

Problem

driver: org.postgresql.Driverurl: jdbc:postgresql://localhost:5432/efiniausername: dbUserpassword: superGeheim42!

liquibase.properties | defaultsFile

Montag, 10. Dezember 12

#epicfail

Montag, 10. Dezember 12

Ursache

property member

liquibase.integration.commandline.Main.parsePropertiesFile

Montag, 10. Dezember 12

Lösung

+

Montag, 10. Dezember 12

+

Encrypting application

configurationfiles

Advanced configuration

Lösung

Montag, 10. Dezember 12

+

Encrypting application

configurationfiles

Advanced configuration

Montag, 10. Dezember 12

enc. property decrypt member

password

Montag, 10. Dezember 12

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

Vorher

Nachher

driver: org.postgresql.Driverurl: jdbc:postgresql://localhost:5432/efiniausername: dbUserpassword: superGeheim42!

driver: org.postgresql.Driverurl: jdbc:postgresql://localhost:5432/efiniausername: dbUserpassword: ENC(23cdFlcaHt54dZHP1o1TBw6aqTVw4)

Montag, 10. Dezember 12

Don‘t repeat yourself

liquibase-core

liquibase.integration.commandline.Main.parsePropertiesFile

liquibase-maven-plugin

org.liquibase.maven.plugins.AbstractLiquibaseMojo.parsePropertiesFile

Montag, 10. Dezember 12

https://github.com/dominik42/liquibase

Montag, 10. Dezember 12

d.hirt@efinia.de

Montag, 10. Dezember 12

Montag, 10. Dezember 12

Recommended