Использование весеннего конфигурационного сервера с git, вызывающим проблему группы безопасности

Сейчас я пытаюсь настроить использование сервера конфигурации Spring / клиента конфигурации Spring и сервера eureka для совместного поиска служб. когда я использовал локальную файловую систему для сохранения конфигурации, все в порядке, но как только я перехожу на gitHub для сохранения конфигурации, я не могу запустить весенний конфигурационный клиент, и я получил следующее сообщение об ошибке:

com.netflix.discovery.DiscoveryClient: Не удается получить ответ от HTTP: // пользователь:{} шифра AQBdTe9vjgOqANyfi+Ke5HYmhFJnuvsGJ+8FOqLgdMdFInJkVRzy9XngylNp9KlX2lwPI13jT7ceDjBs9w4B6A15akQTHHP1q9rWwMcLtVCCKGFgvXSgQF+WWIItxBmIDGG4bSgDYZ6XQWl66T84PxjTBygErpmAjn+X2BWdtWtVmjXzpMQMaHGpiyLPoGIQYF4j9ZGpl16Jx79+j6et6LStksrT3WxQuanhZwIkqZ827+2mlUB3kd5ocW7R0vC3JMGVZlGNfqYQwJIhSJ19lrq4gxm/zbGroYonW3QSHTiRlhlvOdovEua/0dCl6+s0iEHYZCBllr7jikEWmS5Px7U2TG8/eQkjR8pUbSN6OE+OI2ZZUCNOT+mi75ZeeN1OtdQ=@localhost:8761/ эврика / нуль

Не можете связаться ни с какими узлами eureka - возможно, проблема с группой безопасности?

java.lang.IllegalArgumentException: недопустимый символ в орган по индексу 7: HTTP: // пользователь:{} шифра AQBdTe9vjgOqANyfi+Ke5HYmhFJnuvsGJ+8FOqLgdMdFInJkVRzy9XngylNp9KlX2lwPI13jT7ceDjBs9w4B6A15akQTHHP1q9rWwMcLtVCCKGFgvXSgQF+WWIItxBmIDGG4bSgDYZ6XQWl66T84PxjTBygErpmAjn+X2BWdtWtVmjXzpMQMaHGpiyLPoGIQYF4j9ZGpl16Jx79+j6et6LStksrT3WxQuanhZwIkqZ827+2mlUB3kd5ocW7R0vC3JMGVZlGNfqYQwJIhSJ19lrq4gxm/zbGroYonW3QSHTiRlhlvOdovEua/0dCl6+s0iEHYZCBllr7jikEWmS5Px7U2TG8/eQkjR8pUbSN6OE+OI2ZZUCNOT+mi75ZeeN1OtdQ=@localhost:8761/eureka/ at java.net.URI.create(URI.java:852)

Вот что у меня есть:

  1. В cofig сервере application.yml:
 spring:
      application:
        name: spirent-config-server
      cloud:
        config:
          server:
            git:
              uri:  https://github.com/spring-cloud-samples/config-repo
              #searchPaths: foo,bar*

    server:
      port: 8888
  1. в клиенте конфигурации:

bootstrap.properties:

spring.application.name= foo
spring.profiles.active= development
spring.cloud.config.uri= http://localhost:8888

и application.yml

eureka:
  instance:
    hostname: ${host.instance.name:frank1}
    nonSecurePort: ${host.instance.port:8080}
    metadataMap:
      instanceId: ${host.instance.instanceid:frank_123}
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

server:
  port: ${host.instance.port:8080}
  1. Эврика сервер:

application.yml

server:
  port: 8761

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
  server:
    waitTimeInMsWhenSyncEmpty: 0

bootstrap.yml:

spring:
  application:
    name: eureka
  cloud:
    config:
      uri: ${CONFIG_SERVER_URL:http://localhost:8888}

Из исключения, казалось, это потому, что DiscoverClient не работает, что-то особенное для конфигурации? Но если я перехожу с gitHub на локальное хранилище файлов для конфигурации, все в порядке.

Спасибо за ваше предложение заранее.

Основываясь на весеннем облачном документе, я делаю так:

В application.yml сервера конфигурации:

spring:
  application:
    name: spirent-config-server
  cloud:
    config:
      server:
        git:
          uri:  https://github.com/spring-cloud-samples/config-repo
          #searchPaths: foo,bar*
encrypt:
  key: abc

server:
  port: 8888

В application.yml сервера Eureka:

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

  server:
    waitTimeInMsWhenSyncEmpty: 0

encrypt:
  key: abc

И в application.yml клиента конфигурации:

eureka:
  instance:
    hostname: ${host.instance.name:frank1}
    nonSecurePort: ${host.instance.port:8080}
    leaseRenewalIntervalInSeconds: 5 #default is 30, recommended to keep default
    metadataMap:
      #instanceId: ${host.instance.instanceid:frank_123}
      instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

server:
  port: ${host.instance.port:8080}

encrypt:
  key: abc

Но проблема в том, что после того, как я запустил Eureka на сервере конфигурации, все нормально, без исключения, но после того, как я запустил клиент конфигурации, я получил то же самое исключение:

Can't contact any eureka nodes - possibly a security group issue?

java.lang.IllegalArgumentException: Illegal character in authority at index 7: http://user:{cipher}AQBdTe9vjgOqANyfi+Ke5HYmhFJnuvsGJ+8FOqLgdMdFInJkVRzy9XngylNp9KlX2lwPI13jT7ceDjBs9w4B6A15akQTHHP1q9rWwMcLtVCCKGFgvXSgQF+WWIItxBmIDGG4bSgDYZ6XQWl66T84PxjTBygErpmAjn+X2BWdtWtVmjXzpMQMaHGpiyLPoGIQYF4j9ZGpl16Jx79+j6et6LStksrT3WxQuanhZwIkqZ827+2mlUB3kd5ocW7R0vC3JMGVZlGNfqYQwJIhSJ19lrq4gxm/zbGroYonW3QSHTiRlhlvOdovEua/0dCl6+s0iEHYZCBllr7jikEWmS5Px7U2TG8/eQkjR8pUbSN6OE+OI2ZZUCNOT+mi75ZeeN1OtdQ=@localhost:8761/eureka/
    at java.net.URI.create(URI.java:852)
    at com.sun.jersey.api.client.Client.resource(Client.java:433)
    at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1091)
    at com.netflix.discovery.DiscoveryClient.makeRemoteCall(DiscoveryClient.java:1060)
    at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:835)

Может кто-нибудь сказать мне, где моя ошибка? Это происходило только при использовании GIT в качестве источника данных сервера конфигурации, но в локальном файловом источнике данных ошибки не возникало.

Спасибо

Вот мои шаги, чтобы попытаться решить ключевые проблемы, но снова не удалось:

  1. загрузите "Файлы политики неограниченной юрисдикции Java Cryptography Extension (JCE)" от Oracle и следуйте инструкциям по установке (по существу замените 2 файла политики в каталоге lib / security JRE на те, которые вы скачали).

  2. Теперь, если я запускаю spring encrypt mysecret --key foo, это успешно, это означает, что JCE установлен правильно;

  3. Создание хранилища ключей для тестирования: используйте это: https://github.com/spring-cloud/spring-cloud-config/blob/master/docs/src/main/asciidoc/spring-cloud-config.adoc#creating-a-key-store-for-testing

  4. после обновления application.yml на моем конфигурационном сервере application.yml выглядит так:

spring:
  application:
    name: spirent-config-server
  cloud:
    config:
      server:
        git:
          uri:  https://github.com/spring-cloud-samples/config-repo
          #searchPaths: foo,bar*
encrypt:
  keyStore:
    location: classpath:/server.jks
    password: letmein
    alias: abc
    secret: changeme
  key: abc

server:
  port: 8888

  1. добавив это как на сервер eureka, так и на клиентское приложение config.yml:

    шифровать: ключ: abc

  2. Запустите все: результат - такая же неприятная ошибка

Так что же плохого в моем тестировании? Спасибо за вашу помощь

Я виноват: изменил application.yml на это:

spring:
  application:
    name: configserver
encrypt:
  failOnError: false
  keyStore:
    #location: classpath:keystore.jks
    #password: ${KEYSTORE_PASSWORD:foobar} # don't use a default in production
    #alias: test
    location: classpath:server.jks
    password: letmein
    alias: mytestkey
    secret: changeme

А затем с помощью этой команды сгенерируйте файл, решающий проблему полностью:

keytool -genkeypair -alias mytestkey -keyalg RSA \ -dname "CN = веб-сервер,OU= единица,O= организация,L= город,S= штат,C=US" \ -keypass changeme -keystore server.jks -storepass letmein

Спасибо

0 ответов

Другие вопросы по тегам