Ocelot允许用户访问claims并把它们转换到头部,请求字符串参数和其他claims中.这仅在用户通过身份验证后才可用。

用户通过身份验证之后,我们运行claims转换中间件.这个中间件允许在授权中间件调用之前转换claims.当用户身份验证之后,首先会调用claims转换到头的中间件,最后调用claims转换到查询字符串的中间件.

执行转换的语法对于每个处理都是相同的。在ReRoute配置中,使用特定名称AddClaimsToRequest,AddHeadersToRequest,AddQueriesToRequest添加一个json字典。

注意,我不是一个编程专家,所以不知道这个语法是否好...

在词典中,这些条目指定了Ocelot应该如何转换! 字典的键将成为claim,头,查询参数的键。

条目的值将被解析成转换的逻辑.首先指定了一个字典访问器,例如Claims[CustomerId].意思是我们想访问claims并获取键为CustomerId的claim类型.然后一个大于号(>)用于分隔.下一个条目是值或带索引器的值.如果指定了单个值,Ocelot将取该值并将其添加到变换中。如果该值有一个索引器,Ocelot将查找在另一个大于符号后面提供的分隔符。 然后,Ocelot会使用分隔符将值分开,并将所需的索引添加到转换中。

Claims 到 Claims 的转换

下面是一个Claims到Claims转换的例子

"AddClaimsToRequest": { "UserType": "Claims[sub] > value[0] > |", "UserId": "Claims[sub] > value[1] > |" }

这显示了Ocelot查看用户的sub声明并将其转换为UserType和UserId声明的转换。 假设sub声明看起来像这样“usertypevalue | useridvalue”。

Claims到头的转换

下面是一个Claims到头转换的例子

"AddHeadersToRequest": {
    "CustomerId": "Claims[sub] > value[1] > |"
}

这显示了Ocelot查看用户的sub声明并将其转换为CustomerId头的转换。 假设sub声明看起来像这样“usertypevalue | useridvalue”。

Claims 到查询字符串参数的转换

下面是一个Claims到查询字符串参数转换的例子

"AddQueriesToRequest": {
    "LocationId": "Claims[LocationId] > value",
}

这显示了Ocelot查看用户的LocationId声明并将其作为发往下游服务的查询字符串参数LocationId的转换。

Ocelot中文文档-转换Claims的更多相关文章

  1. Ocelot中文文档-转换Headers

    Ocelot允许在请求下游服务之前和之后转换头部.目前Ocelot只支持查找和替换.这个功能在Github #190提出.我确定这个功能可以在各个方面发挥作用. 添加到请求 这个功能在GitHub # ...

  2. Ocelot中文文档-Route

    路由(Routing) Ocelot主要功能是接收即将发来的请求并转发它们至下游服务.与此同时,以另一个http请求的形式(在将来这可能是任何传输的机制) Ocelot将一个请求的路由描述为另一个路由 ...

  3. Ocelot中文文档入门

    入门 Ocelot仅适用于.NET Core,目前是根据netstandard2.0构建的,如果Ocelot适合您,这个文档可能会有用. .NET Core 2.1 安装NuGet包 使用nuget安 ...

  4. .NET Core开源API网关 – Ocelot中文文档

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...

  5. Ocelot中文文档-跟踪

    Ocelot使用一个杰出的项目Butterfly 提供了跟踪功能. 为了使用跟踪,请阅读Butterfly的文档. 在Ocelot中如果你想跟踪一个ReRoute,你需要做如下事情: 在Configu ...

  6. Ocelot中文文档-不支持

    Ocelot不支持一下几点... 分块编码 - Ocelot将始终获取body大小并返回Content-Length头. 如果这不适合你的场景,只能表示抱歉! 转发host头 - 您发给Ocelot的 ...

  7. Ocelot中文文档-路由

    Ocelot的主要功能是接管进入的http请求并把它们转发给下游服务.目前是以另一个http请求的形式(将来可能是任何传输机制). Ocelot将路由一个请求到另一个请求描述为ReRoute.为了在O ...

  8. Ocelot中文文档-管理

    Ocelot支持在运行时通过一个认证的Http API修改配置.有两种方式对其验证, 使用Ocelot的内置IdentityServer(仅用于向管理API验证请求)或将管理API验证挂接到您自己的I ...

  9. Ocelot中文文档-Raft(实验功能不能用于生产环境)

    Ocelot最近整合了Rafty,这是我在去年一直研究的Raft的一个实现. 这个项目实验性非常强,所以在我认为它没问题之前,请不要在生产环境中使用Ocelot的这个功能. Raft是一种分布式一致性 ...

随机推荐

  1. UNIX环境高级编程——信号

    一.信号生命周期 从信号发送到信号处理函数的执行完毕. 对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生:信号在进 ...

  2. 分布式内存网格Hazelcast源码导读

    去年项目需要看了hazelcast源码,当时记录的笔记. Node是节点的抽象,里面包含节点引擎.客户端引擎.分区服务.集群服务.组播服务.连接管理.命令管理.组播属性.节点配置.本地成员.tcp地址 ...

  3. FSM之SMC使用总结

    FSM之SMC使用总结 Part1: Smc.jar state machine compiler usage Reference:     http://smc.sourceforge.net/   ...

  4. How To Get Log, Trace Files In OA Framework Pages And Concurrent Request Programs

    Goal   Solution   References APPLIES TO: Oracle Supplier Lifecycle Management - Version 12.1.2 and l ...

  5. C/C++ Volatile关键词深度剖析(转)

    本文转载自博文C/C++ Volatile关键词深度剖析. 背景 前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议): 此微博,引发了朋友们的大量讨论:赞同者有之:批评者 ...

  6. Weka 算法大全

    关联规则挖掘 (一)  Apriori (二)  FilteredAssociator (三)  FPGrowth (四)  GeneralizedSequentislPatterns (五)  Pr ...

  7. Spring AOP (二)

    下面介绍@AspectJ语法基础 一.切点表达式函数 AspectJ的切点表达式由关键字和操作参数组成,如execution(* greetTo(..)) 的切点表达式,execution为关键字,而 ...

  8. SpriteBuilder中如何固定两个互不接触的物理物体?

    如下图: 这个弹簧装置由3部分组成(从上到下): 弹板 弹簧 弹簧金属底座 其中弹板将固定在弹簧上(但并没有接触,如上图),这就引出一个有趣的问题:怎么样才能将两个独立的物理物体(注意:是物理物体)固 ...

  9. 求剁手的分享,如何简单开发js图表

    前段时间做的一个项目里需要用到js图表,在网上找了下,大概找到了highcharts.fusioncharts这些国外产品. 因为都收费,虽然有盗版,我也不敢用,万一被找上们来就砸锅卖铁了要.自己写j ...

  10. Hadoop家族

    现在Hadoop家族产品,已经达到20个了之多. 有必要对自己的知识做一个整理了,把产品和技术都串起来.不仅能加深印象,更可以对以后的技术方向,技术选型做好基础准备. 本文为"Hadoop家 ...