2016-03-11 6 views
1

Я работаю над Spring Cloud Config на некоторое время. У меня есть требование для защиты данных конфигурации. Согласно документации Spring Cloud, сервер server.jks настроен и добавлен в classpath. Теперь я могу зашифровать и дешифровать удаленные данные конфигурации.Spring Cloud Config не расшифровывает пароль сервера конфигурации

Для обеспечения безопасности сервера конфигурации я добавил стартер безопасности весны и назначил учетные данные (пароль был осужден). По какой-то причине приложение бросает excpetions, что у него нет хранилища ключей в пути к классам. После того, как он запустил его на некоторое время, я обнаружил, что хранилище ключей должно идти в bootstrap.yml вместо application.yml. Это также не работает, пожалуйста, укажите мне, что я здесь отсутствует.

Пожалуйста, найдите YML файлы в мерзавца SpringConfigData

Exception

java.lang.IllegalStateException: Cannot decrypt: key=security.user.password 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt(EnvironmentDecryptApplicationInitializer.java:195) ~[spring-cloud-context-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT] 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt(EnvironmentDecryptApplicationInitializer.java:164) ~[spring-cloud-context-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT] 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.initialize(EnvironmentDecryptApplicationInitializer.java:94) ~[spring-cloud-context-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT] 
    at org.springframework.cloud.bootstrap.BootstrapApplicationListener$DelegatingEnvironmentDecryptApplicationInitializer.initialize(BootstrapApplicationListener.java:333) ~[spring-cloud-context-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT] 
    at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:640) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE] 
    at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:343) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.3.RELEASE.jar:1.3.3.RELEASE] 
    at com.test.TestConfigServerApplication.main(TestConfigServerApplication.java:12) [classes/: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:151) ~[spring-cloud-context-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT] 
    at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.decrypt(EnvironmentDecryptApplicationInitializer.java:187) ~[spring-cloud-context-1.1.0.BUILD-SNAPSHOT.jar:1.1.0.BUILD-SNAPSHOT] 
    ... 9 common frames omitted 
+1

У вас установлен JCE, как описано в документах? http://projects.spring.io/spring-cloud/docs/1.0.3/spring-cloud.html#_cloud_native_applications – spencergibb

+0

да у меня есть настройка. Функция encrytion/decrytion работает для удаленных свойств, которые находятся в моем svn. –

+0

У меня есть еще одно замечание, повторив документацию. Я попробовал переменные среды. (-Dencrypt.keyStore.location = classpath: /server.jks -Dencrypt.keyStore.password = springcloudconfigserver -Dencrypt.keyStore.alias = springcloudconfigserver -Dencrypt.keyStore.secret = springcloudconfigserver) на этот раз работает. Для всех тех, кто царапает голову асимметричной конфигурацией, это работа. –

ответ

0

Вместо bootstrap.yml передается с помощью переменных окружения.

-Dencrypt.keyStore.location = путь к классам: /server.jks -Dencrypt.keyStore.password = springcloudconfigserver -Dencrypt.keyStore.alias = springcloudconfigserver -Dencrypt.keyStore.secret = springcloudconfigserver

Config Сервер не может для поиска свойств в bootstrap.yml для асимметричной защиты. симметричные работы просто отлично

+0

'bootstrap.xml' недействительный файл,' bootstrap.yml' или 'bootstrap.properties' действительны. – spencergibb

+0

Извините, у вас была опечатка, которая была yml-файлом –

Смежные вопросы