Closed membersound closed 5 years ago
I noticed that didn't work and I really don't know why... DefeaultLazyEncryptor#createAsymmetricDefault
is retrieving the config using kebab if you take a look:
private StringEncryptor createAsymmetricDefault(Environment e) {
SimpleAsymmetricConfig config = new SimpleAsymmetricConfig();
config.setPrivateKey(getProperty(e, "jasypt.encryptor.private-key-string", null));
config.setPrivateKeyLocation(getProperty(e, "jasypt.encryptor.private-key-location", null));
config.setPrivateKeyFormat(AsymmetricCryptography.KeyFormat.valueOf(getProperty(e, "jasypt.encryptor.private-key-format", "DER")));
return new SimpleAsymmetricStringEncryptor(config);
}
I'll dig into it
should be fixed next release. Checkout the tests: https://github.com/ulisesbocchio/jasypt-spring-boot-samples/tree/master/jasypt-spring-boot-demo-simple-asymmetric/src/test/java/demo
It should be possible to provide the private-key properties as follows:
Instead only the following format is possible:
In fact, it would be best if the same relaxed-binding defaults would apply to jasypt config: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-relaxed-binding
But at least kebeb-case should be supported, as it is the preferred way defining properties (and kebab-case is also used by many IDEs like Intellij for autocompletion in application.properties)!
When trying the first approach, the following ex is thrown on startup when having an
ENC(...)
field inapplication.properties
: