SBA версия 2.0.1
Spring-Cloud Finchley.RELEASE
У меня есть несколько зарегистрированных служб в Eureka.Эти сервисы являются приложениями Spring-Boot, и их приводы защищены базовой аутентификацией HTTP.Сервисные приводы находятся в положении / привод.Сервисы работают, и я могу взаимодействовать с их приводами через почтальон и керл.SBA подключается к Eureka и обнаруживает службы, но они всегда находятся в выключенном (красном) состоянии, за исключением самого приложения SBA, которое в консоли SBA отлично отображается зеленым цветом, и я могу нажать на него и увидетьэто свойства.
Когда я нажимаю на один из экземпляров службы, меня просят ввести учетные данные.Я не уверен, какие учетные данные использовать, поэтому я использую учетные данные для сервисного привода.У меня уже есть эти учетные данные на карте метаданных, как показано в документации, но мне все равно предлагается ввести учетные данные.Это всегда приводит к отображению страницы ошибки Whitelabel с сообщением об ошибке, подобным этому:
Пн. 25 июня 12:40:57 CDT 2018 Произошла непредвиденная ошибка (тип = метод не разрешен, статус =405).Метод запроса 'POST' не поддерживается
Хотя я отмечаю, что URL-адрес этой ошибки, по-видимому, находится на самом экземпляре SBA, а не на удаленной службе.URL расшифровывается следующим образом: http://localhost:8080/#/instances/9207aa5fc06b/
Но я вижу это в журнале службы, поэтому, по-видимому, запрос на проверку подлинности поступает в службу удаления:
[2018-06-25 12: 16: 54.242] - ОТЛАДКА - [http-nio-8380-exec-7] [AUTHENTICATION_SERVICE_DEV, 8dc8165d4f77be7c, 8dc8165d4f77be7c, ложно] --- [nio-8380-exec-7] oswsmcessProhoho: Писатьотметка времени = пн 25 июня 12:16:54 CDT 2018, статус = 401, ошибка = неавторизовано, сообщение = неавторизовано, путь = / исполнительный механизм / здоровье}] как «application / vnd.spring-boot.actuator.v2 + json» с использованием[org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@30c8681]
И это в журнале SBA:
2018-06-25 12: 39: 40.884ОШИБКА [SERVICES_ADMIN_CONSOLE_LOCAL ,,,] 20728 --- [nio-8080-exec-8] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] throwисключение
java.io.IOException: установленное соединение было прервано программным обеспечениемВещи на вашем хост-компьютере
Это корень моей путаницы, я не уверен, какие учетные данные мне нужны или даже то, к чему я аутентифицируюсь.Я предоставил учетные данные удаленной службе в свойствах, а также в форме входа в систему, и она не работает.
Когда я нажимаю на приложение SBA в консоли SBA, оно работает, как и ожидалось.Так что, похоже, это связано с аутентификацией на удаленном приводе, но я не могу понять, в чем проблема.
Сервер:
@Configuration
@EnableAutoConfiguration
@EnableEurekaClient
@EnableAdminServer
public class ServiceAdmin {
public static void main(String[] args) {
SpringApplication.run(ServiceAdmin.class, args);
}
@Configuration
public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll()
.and().csrf().disable();
}
}
}
SBA Config:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
management.info.git.mode=full
management.endpoint.shutdown.enabled=true
spring.security.user.name=actuator
spring.security.user.password=password
spring.security.user.roles=ACTUATOR
eureka.instance.leaseRenewalIntervalInSeconds=10
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.metadata-map.user.name=actuator
eureka.instance.metadata-map.user.password=password
eureka.client.registryFetchIntervalSeconds=5
eureka.client.serviceUrl.defaultZone=http://svcregistry1.mycompany.com/eureka/,http://svcregistry2.mycompany.com