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