Spring-Cloud-Config 服务器的自定义 Encryption/Decryption
Custom Encryption/Decryption for Spring-Cloud-Config Server
我正在使用 spring-cloud-config 服务器并尝试使用 encrypt/decrypt 功能。有没有一种方法可以自定义 encrypt/decrypt 功能,即我们有自己的加密标准并希望利用这些库。
提前感谢任何帮助。
如果你想定制encryption/decryption,本质上你需要自己定制org.springframework.security.crypto.encrypt.TextEncryptor
bean。
乐观地,从您的应用程序中删除所有与 entrypt 相关的配置。properties/application.yml,您还需要确保 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
我正在使用 spring-cloud-config 服务器并尝试使用 encrypt/decrypt 功能。有没有一种方法可以自定义 encrypt/decrypt 功能,即我们有自己的加密标准并希望利用这些库。
提前感谢任何帮助。
如果你想定制encryption/decryption,本质上你需要自己定制org.springframework.security.crypto.encrypt.TextEncryptor
bean。
乐观地,从您的应用程序中删除所有与 entrypt 相关的配置。properties/application.yml,您还需要确保 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