我们公司有一个加密实用程序,我们希望将其用作通用加密/解密方法。我们的spring-boot应用程序有一个外部属性来指定spring.datasource。*配置。
@Configuration
@ComponentScan
@EnableAutoConfiguration
@PropertySources({ @PropertySource(value = { "classpath:application.properties" }),
@PropertySource(value = { "file:${application.properties}" }, ignoreResourceNotFound = true) })
现在,我们想在连接到数据库之前解密它。我看过spring-boot jasypt但是如果你想使用你自己的密钥作为解密方法它将无法工作。有没有办法使用存储在系统中的密钥进行解密?
我已加密并将密码保存在此初始化程序的外部属性中
@Configuration
public class PropertyPasswordContextInitializer implements ApplicationContextInitializer<ConfigurableWebApplicationContext> {
@Override
public void initialize(final ConfigurableWebApplicationContext applicationContext) {
String configPath = applicationContext.getServletContext().getInitParameter("application.properties"));
//load properties
//encrypt if property is spring.datasource.password and starts with ##
//save properties file
}
现在加密工作正常。它现在正在寻找实现解密过程的钩子。