Spring Cloud Config Basic Security выдает ошибку 401 - PullRequest
3 голосов
/ 28 мая 2019

У меня есть следующая конфигурация на стороне сервера:

server:
  port: 8888

spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          search-locations: "classpath:/config"
  security:
    user:
      name: test
      password: test

И следующая конфигурация на стороне клиента:

spring:
  cloud:
    config:
      fail-fast: true
      profile: "${spring.profiles.active}"
      uri: "${SPRING_CLOUD_CONFIG_URI:http://localhost:8888/}"
      username: test
      password: test

Я могу успешно получить доступ к свойствам из браузера, используя user/pwd как test/test, но когда мой клиент пытается получить его, произошла ошибка с ошибкой 401:

INFO 7620 --- [5cee934b64bfd92] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
WARN 7620 --- [5cee934b64bfd92] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: 401 null

Я попытался установить уровень журнала для весеннего облака на DEBUG, но больше ничего не регистрировалось, поэтому я понятия не имею, почему я получаю 401 от клиента, в то время как я могу получить доступ к свойствам через браузер, используя те же учетные данные.

Я также пытался снять защиту с сервера и клиента, и она отлично работала, что означает, что остальные конфигурации в порядке. Но тогда возникает вопрос: что я пропускаю, когда применяю базовую безопасность и почему она не работает и вместо этого выдает 401?

1 Ответ

0 голосов
/ 11 июня 2019

Проверьте, правильно ли указано имя профиля и правильно ли оно разрешено в коде Java. Вы можете реализовать CommandLineRunner и печатать активные профили из переменной среды.

Если вы указали свойство spring.profiles.active как собственное в pom.xml, вы можете разрешить его в файле application / yaml как @ spring.profiles.active @

Если вы указали файл свойств в качестве аргумента VM, то он должен работать с текущей реализацией.

Если вы не указали spring.profiles.active в аргументе pom или VM, он будет преобразован в профиль по умолчанию, а не в собственный профиль. Профиль в клиенте конфигурации и на сервере конфигурации должен быть одинаковым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...