1

spring-cloud-config サーバーに server.ssl.key-store-password を設定したいのですが、構成は GIT (application.yml) から取得されます。

以下は、application.ymlで構成したいものです

server:
  port: 8760
  ssl:
    key-store: path to .jks
    key-store-password: '{cipher}encrypted password'
    key-store-type: jks
    key-password: '{cipher}encrypted password'

構成サーバーのブートストラップ中に、TextEncryptor FailsafeTextEncryptor を使用して EncryptionBootstrapConfiguration を構成します。これは、EnvironmentDecryptApplicationInitializer に対して復号化関数が呼び出されると失敗します。

config-server の起動中に {cipher} を使用できるように、EncryptionBootstrapConfiguration 用のカスタム TextEncryptor をどのように設定できますか?

参照https://stackoverflow.com/a/32047393/1946403

4

1 に答える 1

0

このエラーが発生していました。これを修正するには、EncryptionConfiguration と TextEncryptor を spring.factory ファイルに追加する必要がありました。

私は3つのファイルを持っています:

暗号化構成:

@Configuration
public class AESEncryptionConfiguration {

    @Bean
    EnvironmentDecryptApplicationInitializer environmentDecryptApplicationInitializer() {
        return new EnvironmentDecryptApplicationInitializer(new AESTextEncryptor());
    }
}

TextEncryptor:

@Component
public class AESTextEncryptor implements TextEncryptor {

    @Override
    public String encrypt(String text) {
        .
        .
        .       
    }

    @Override
    public String decrypt(String encryptedText) {
        .
        .
        .
    }
}

次に、両方のファイルへの参照を追加する必要がありました/src/main/resources/META-INF/spring.factories

org.springframework.cloud.bootstrap.BootstrapConfiguration=com.rs.config.AESEncryptionConfiguration,com.common.encryption.AESTextEncryptor

これにより、カスタム暗号を作成することができました。

于 2017-01-07T18:19:30.647 に答える