我正在使用spring-cloud-config服务器并尝试使用加密/解密功能。有没有办法我们可以自定义加密/解密功能,即我们有自己的加密标准,并希望利用这些库。
提前感谢任何帮助。
答案 0 :(得分:2)
如果要自定义加密/解密,基本上您需要自己定制org.springframework.security.crypto.encrypt.TextEncryptor
bean。
乐观地说,从application.properties/application.yml中删除所有与entrypt相关的配置,还需要确保JCE不在你的类路径中,主要建议是禁用spring default encryption auto-configuration,然后注册你的拥有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