使用Ocelot构建API网关-验证后不重新路由

时间:2019-03-11 09:47:29

标签: c# ocelot

我们具有微服务架构(服务结构),在一个应用程序中具有多个服务,如下所示

-派对服务 -Web API服务,向交易对手服务提供所有API

类似于以上结构,有不同的服务和相应的Web API

我们正在创建一个API网关,以提供所有服务的通用接口。为此,我们创建了.Net Web应用程序,并在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类,但不会重新路由到DownstreamPathTemplate文件中配置的ocelot.json URL。

如果未定义身份验证,则会正确重新路由。

我的配置有什么问题,需要任何帮助吗?

0 个答案:

没有答案