У нас есть микро-сервисная архитектура (сервисная структура) с несколькими сервисами в приложении, как показано ниже
-контрольная служба
-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
.
Если аутентификация не определена, она правильно перенаправляется.
Что не так в моей конфигурации, любая помощь будет оценена?