我正在使用 jasypt 加密 springboot 应用程序的 application.properties 文件中的一些属性。 我也需要加密服务器端口。
当我对其进行加密并运行我的应用程序时,该应用程序不会启动。
我收到以下错误
Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Integer] for value 'ENC(OWRKKTBHQcjWItQG/+V7hw==)'; nested exception is java.lang.NumberFormatException: For input string: "ENC(OWRKKTBHQcjWItQG/+V7hw==)"
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47) ~[spring-core-5.2.2.RELEASE.jar:5.2.2.RELEASE]
看起来它没有解密该属性
下面是我的 jasypt 自定义配置
@Configuration
public class JasyptEncryptionConfig {
public final static String ENCRYPTION_KEY = "PassWordsecret";
@Bean(name ="jasyptStringEncryptor")
public StringEncryptor passwordEncryptor(){
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword(ENCRYPTION_KEY); // encryptor's private key
config.setAlgorithm("PBEWithMD5AndDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName("SunJCE");
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setStringOutputType("base64");
encryptor.setConfig(config);
return encryptor;
}
}
以下是应用程序属性
server.port: ENC(OWRKKTBHQcjWItQG/+V7hw==)
management.port: ENC(OWRKKTBHQcjWItQG/+V7hw==)
management.address: 127.0.0.1
management.context-path: /actuator
其他属性都正常,只有服务器端口不起作用。