我想为spring-cloud-config服务器设置server.ssl.key-store-password,配置将来自GIT(application.yml)。
以下是我要在application.yml中配置的内容
server:
port: 8760
ssl:
key-store: path to .jks
key-store-password: '{cipher}encrypted password'
key-store-type: jks
key-password: '{cipher}encrypted password'
引导配置服务器时,它使用TextEncryptor FailsafeTextEncryptor配置EncryptionBootstrapConfiguration,当为EnvironmentDecryptApplicationInitializer调用decrypt函数时,它会失败。
我们如何为EncryptionBootstrapConfiguration提供自定义TextEncryptor,以便在启动config-server时可以使用{cipher}
答案 0 :(得分:0)
我收到了这个错误。为了解决这个问题,我必须将EncryptionConfiguration和TextEncryptor添加到spring.factory文件中。
我有3个文件:
加密配置:
@Configuration
public class AESEncryptionConfiguration {
@Bean
EnvironmentDecryptApplicationInitializer environmentDecryptApplicationInitializer() {
return new EnvironmentDecryptApplicationInitializer(new AESTextEncryptor());
}
}
TextEncryptor:
@Component
public class AESTextEncryptor implements TextEncryptor {
@Override
public String encrypt(String text) {
.
.
.
}
@Override
public String decrypt(String encryptedText) {
.
.
.
}
}
然后我必须在/src/main/resources/META-INF/spring.factories
org.springframework.cloud.bootstrap.BootstrapConfiguration=com.rs.config.AESEncryptionConfiguration,com.common.encryption.AESTextEncryptor
通过这样做,我能够创建自定义密码。