2016-12-22 7 views
1

Я пытаюсь запустить spring-cloud-config-server с зашифрованным свойством в application.yml.шифрование в spring-cloud-config-server

--- 

server: 
    port: 8888 

spring: 
    cloud: 
    config: 
     server: 
     git: 
      uri: file:/Users/gadams/git/cs-config 

encrypt: 
    key-store: 
    location: classpath:/config-server.jks 
    password: password 
    alias: alias 
    secret: secret 

security: 
    user: 
    password: '{cipher}encryptedPassword' 

Я получаю следующую ошибку при запуске:

java.lang.IllegalStateException: Cannot decrypt: key=security.user.password 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt(EnvironmentDecryptApplicationInitializer.java:201) ~[spring-cloud-context-1.1.6.RELEASE.jar:1.1.6.RELEASE] 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt(EnvironmentDecryptApplicationInitializer.java:165) ~[spring-cloud-context-1.1.6.RELEASE.jar:1.1.6.RELEASE] 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.initialize(EnvironmentDecryptApplicationInitializer.java:95) ~[spring-cloud-context-1.1.6.RELEASE.jar:1.1.6.RELEASE] 
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener$DelegatingEnvironmentDecryptApplicationInitializer.initialize(BootstrapApplicationListener.java:333) ~[spring-cloud-context-1.1.6.RELEASE.jar:1.1.6.RELEASE] 
    at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:635) [spring-boot-1.4.2.RELEASE.jar:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:349) [spring-boot-1.4.2.RELEASE.jar:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:313) [spring-boot-1.4.2.RELEASE.jar:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.2.RELEASE.jar:1.4.2.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.2.RELEASE.jar:1.4.2.RELEASE] 
    at com.collegescheduler.ConfigServerApplication.main(ConfigServerApplication.java:12) [bin/:na] 
Caused by: java.lang.UnsupportedOperationException: No decryption for FailsafeTextEncryptor. Did you configure the keystore correctly? 
    at org.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfiguration$FailsafeTextEncryptor.decrypt(EncryptionBootstrapConfiguration.java:152) ~[spring-cloud-context-1.1.6.RELEASE.jar:1.1.6.RELEASE] 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt(EnvironmentDecryptApplicationInitializer.java:193) ~[spring-cloud-context-1.1.6.RELEASE.jar:1.1.6.RELEASE] 
    ... 9 common frames omitted 

Я использую org.springframework.cloud:spring-cloud-dependencies:Camden.SR3. Как следует зашифровывать пароль пользователя весной безопасности на сервере конфигурации?

+0

Вы проверили мой ответ? –

ответ

0

Это что-то не так в конфигурации вашего хранилища ключей из журнала.

Использовать keytool, чтобы сначала проверить пропуск/секрет/псевдоним вашего магазина ключей.

+0

Конфигурация хранилища ключей отлично работает для зашифрованных свойств в конфигурации из github. Он не работает во время начальной загрузки, для свойств в приложении config.yml сервера конфигурации. – gadams00

0

Вы уважали prerequisites?

Предпосылки: использовать шифрование и дешифрование функцию нужно полной прочности ОКО установлено в вашем виртуальной машине Java (это не там умолчанию). Вы можете загрузить «Расширение криптографии Java» (JCE) «Файлы политики неограниченной силы» из Oracle и следуйте инструкциям для установки (по существу, замените 2 файла политики в каталоге JRE lib/security с теми, которые вы загрузили).

Вы должны также иметь в своем pom.xml:

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-rsa</artifactId> 
</dependency>