我正在使用 spring-cloud-config 服务器并尝试使用加密/解密功能。有没有一种方法可以自定义加密/解密功能,即我们确实有自己的加密标准并希望利用这些库。
提前感谢任何帮助。
我正在使用 spring-cloud-config 服务器并尝试使用加密/解密功能。有没有一种方法可以自定义加密/解密功能,即我们确实有自己的加密标准并希望利用这些库。
提前感谢任何帮助。
如果你想自定义加密/解密,本质上你需要org.springframework.security.crypto.encrypt.TextEncryptor
自己自定义bean。
乐观地,从你的 application.properties/application.yml 中删除所有与 entrypt 相关的配置,你还需要确保 JCE 不在你的类路径中,主要建议是禁用 spring 默认加密自动配置,然后注册你自己的TextEncryptor
bean。
在这里,我添加了一个非常简单的示例,因此您可以MyTextEncryptor
使用现有的库来实现。
样本
@SpringBootApplication
@EnableConfigServer
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Component
static class MyTextEncryptor implements TextEncryptor {
@Override
public String encrypt(String text) {
return "encrypt\n";
}
@Override
public String decrypt(String encryptedText) {
return "decrypt\n";
}
}
}
参考:
org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration
org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer
org.springframework.cloud.config.server.encryption.EncryptionController