0

我正在使用 spring-cloud-config 服务器并尝试使用加密/解密功能。有没有一种方法可以自定义加密/解密功能,即我们确实有自己的加密标准并希望利用这些库。

提前感谢任何帮助。

4

1 回答 1

2

如果你想自定义加密/解密,本质上你需要org.springframework.security.crypto.encrypt.TextEncryptor自己自定义bean。

乐观地,从你的 application.properties/application.yml 中删除所有与 entrypt 相关的配置,你还需要确保 JCE 不在你的类路径中,主要建议是禁用 spring 默认加密自动配置,然后注册你自己的TextEncryptorbean。

在这里,我添加了一个非常简单的示例,因此您可以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

于 2016-10-10T07:01:03.243 回答