使用jasypt加密springboot应用程序属性中的服务器端口

问题描述 投票:0回答:1

我正在使用 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

其他属性都正常,只有服务器端口不起作用。

spring-boot jasypt
1个回答
0
投票

也许你可以使用环境作为屏幕。

您无法将端口 int 更改为 String config.setStringOutputType("base64");

ServerProperties.class public void setPort(Integer port) 
  
© www.soinside.com 2019 - 2024. All rights reserved.