Нет подходящего компонента типа RsaProperties при обновлении до Edgware.SR3 - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь обновиться с Spring Cloud Edgware.SR2 до Edgware.SR3. Когда я собираю Spring Cloud Config Server, тест contextLoads по умолчанию в ApplicationTests завершается с ошибкой:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'encryptionBootstrapConfiguration': Unsatisfied dependency expressed through field 'encryptor'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.cloud.config.server.config.DefaultTextEncryptorConfiguration': Unsatisfied dependency expressed through field 'locator'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.cloud.config.server.config.EncryptionAutoConfiguration$KeyStoreConfiguration': Unsatisfied dependency expressed through field 'rsaProperties'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.bootstrap.encrypt.RsaProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Я подозреваю, что это результат этого изменения в Spring Cloud Commons . У меня есть encrypt.rsa конфигурация в моем bootstrap.yml файле, который работает в Edgware.SR2, и я попытался добавить compile( "org.springframework.security:spring-security-rsa" ) к build.gradle.

В Spring Boot 1.5.14 и Spring Cloud Edgware.SR3 ( Spring Cloud Config 1.4.3 и Spring Cloud Commons 1.3.3 ) только тест не пройден. Если я закомментирую тест, соберусь, а затем запустюсь, он запустится успешно и расшифрует мою конфигурацию. Если я захожу в start.spring.io для создания нового проекта Spring Cloud Config, добавляю мой application.yml, мой bootstrap.yml и включаю spring-security-rsa, тест не пройден, а служба не запускается из-за вышеуказанной ошибки.

  1. Какие изменения мне нужно сделать, чтобы тест по умолчанию проходил на Spring Boot 1.5.14 и Spring Cloud Edgware.SR3 с Spring Cloud Config, в котором используются зашифрованные данные RSA?
  2. Что мне нужно сделать, чтобы пройти и тест, и сервис для запуска с Spring Boot 2.0.3 и Spring Cloud Finchley?

1 Ответ

0 голосов
/ 04 июля 2018

Как показал Спенсер Гибб здесь , проблема заключалась в том, что когда указано encrypt.keyStore.location, то требуется encrypt.keyStore.password (исходный код здесь ). encrypt.keyStore.location должен быть перемещен для указания через профили в bootstrap.yml, так что encrypt.keyStore.password не требуется для теста.

...