Построение API-шлюза с помощью Ocelot - не повторная маршрутизация после аутентификации - PullRequest
0 голосов
/ 11 марта 2019

У нас есть микро-сервисная архитектура (сервисная структура) с несколькими сервисами в приложении, как показано ниже

-контрольная служба -Web API сервис, который предоставляет все API для контрагента

Аналогично приведенной выше структуре существуют различные сервисы и соответствующий веб-API

Мы создаем шлюз API, который обеспечивает общий интерфейс для всех служб. Для этого мы создали веб-приложение .Net и настроили его как показано ниже в файле ocelot.json

.
{
"ReRoutes": [

   {
     "DownstreamPathTemplate": "/xxxx.Counterparty.Application/Itea.BillingFramework.Counterparty.WebApi/api/{everything}",
     "DownstreamScheme": "http",
     "DownstreamHostAndPorts": [
       {
         "Host": "localhost",
         "Port": 19081
       }
     ],
     "UpstreamPathTemplate": "/api/{everything}",
     "UpstreamHttpMethod": [ "Get", "Post", "Put" ],
     "AuthenticationOptions": {
       "AuthenticationProviderKey": "BasicAuthentication",
       "AllowedScopes": []
     }
   }
  ],
  "GlobalConfiguration": {
    "BaseUrl": "http://localhost:50314"
  }
}

У меня есть схема аутентификации, определенная как BasicAuthentication. Когда я отправляю запрос с параметрами аутентификации на следующий URL

http://localhost:50314/api/countertparty?xxx

Запрос поступает в класс BasicAuthentication, но он не перенаправляется на URL DownstreamPathTemplate, настроенный в файле ocelot.json.

Если аутентификация не определена, она правильно перенаправляется.

Что не так в моей конфигурации, любая помощь будет оценена?

...