Spring-Cloud-Config服务器的自定义加密/解密

时间:2016-10-10 06:39:25

标签: spring spring-boot spring-cloud-config

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

提前感谢任何帮助。

1 个答案:

答案 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";
        }
    }
}

<强>结果 enter image description here enter image description here enter image description here

<强>参考:

org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer org.springframework.cloud.config.server.encryption.EncryptionController