Невозможно получить конечные точки привода Steeltoe через http - PullRequest
0 голосов
/ 09 апреля 2019

Я просмотрел заметку о выпуске https://steeltoe.io/reference/reference-release-notes/#2-2-0 и заинтересован в том, чтобы выставить конечную точку / работоспособность через http (я имею в виду вне PCF Apps manager). У меня есть следующие настройки в appsettings.json

{
   "management": {
    "endpoints": {
      "path": "/cloudfoundryapplication",
      "cloudfoundry": {
        "validateCertificates": false
      },
      "health": {
        "showdetails": "always",
        "claim": {
          "type": "health_actuator",
          "value": "see_details"
        }
      }
    }
  } 
}

В моем проекте есть ссылка на Steeltoe.Management.CloudFoundryCore V2.2.0, и мой запуск выглядит следующим образом

public void ConfigureServices(IServiceCollection services)
        {
             // Add health actuator
            services.AddHealthActuator(configuration);
            services.AddCloudFoundryActuators(Configuration);
        }

public void Configure(IApplicationBuilder app) 

        {
            if (HostingEnvironment.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseCloudFoundryActuators();          

            app.UseHealthChecks();
            app.UseMvc();
        }

Теперь, когда я пытался вызвать URL-адрес https://myservice/cloudfoundryapplication/health, я получаю сообщение об ошибке 401, говорящее {"security_error": "Заголовок авторизации отсутствует или недействителен"}. Любая идея, что здесь может быть не так.

1 Ответ

1 голос
/ 09 апреля 2019

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

  1. Не устанавливайте management:endpoints:path и не устанавливайте для него ничего, кроме / cloudfoundryapplication. Ваша внешняя конечная точка будет доступна в / привод / / по умолчанию. Вы можете установить его, например, на управление (только не в cloudfoundryapplication, поскольку приложения используют маршрут и он защищен).
  2. Добавьте ваши приводы так: services.AddCloudFoundryActuators(Configuration, MediaTypeVersion.V2, ActuatorContext.ActuatorAndCloudFoundry); Это включает в себя актуатор Health, поэтому вам не нужен еще один AddHealthActuator
  3. Используйте приводы следующим образом:

    app.UseCloudFoundryActuators( MediaTypeVersion.V2, ActuatorContext.ActuatorAndCloudFoundry);

  4. Чтобы защитить его, вы можете добавить этот конфиг, "claim": { "type": "health_actuator", "value": "see_details" }

... ожидается, что вы предоставите их в своем запросе. Но похоже, что нет. Эта конфигурация является способом защиты конечной точки. Чтобы увидеть это без безопасности, вы можете удалить эту часть конфигурации. Также по умолчанию показываются подробности, так что вы можете полностью удалить конфигурацию в разделе «здоровье».

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