【发布时间】:2019-07-05 06:27:05
【问题描述】:
我开始在 spring-boot 中使用 Jasypt 和 maven 依赖:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
我的 spring-boot 入门类有这些注释:
@EnableEncryptableProperties
@PropertySource(name="EncryptedProperties", value = "classpath:application.properties")
我这样加密了我的密码:
java -cp jasypt-1.9.4.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=password
password=mySecret algorithm=PBEWithMD5AndDES
并将这样的属性添加到我的 application.properties:
server.ssl.key-store-password: ENC(jasyptEncString)
一开始我有这个命令行参数:
--jasypt.encryptor.password=mySecret
但它失败了:
无法将“server.ssl.key-store-password”下的属性绑定到 java.lang.String: 原因:密码不是ASCII
我检查的密码,它只包含 ASCII 字符。
如果我添加这个参数(实际上是默认的):--jasypt.encryptor.algorithm=PBEWithMD5AndDES
我明白了:
SecretKeyFactory 不可用
同样的配置和代码在 Windows 机器上运行良好,但在 RHEL Linux 上却不行。
【问题讨论】:
-
您好,我遇到了同样的问题,我的 server.ssl.key-store-password: ENC(jasyptEncString) 在 application.yml 文件中定义,但获取 Keystore 被篡改,或者密码不正确错误.
-
你用了什么解决方案?
标签: spring-boot jasypt