[译]Ocelot - Claims Transformation
用户授权后才能使用此功能。
用户获得授权后claims将被发送到claims transformation中间件。用户授权后,我们首先调用claims to headers middleware,claims to query string parameters middleware。
在ReRoute配置中添加名为AddClaimsToRequest
, AddHeadersToRequest
, AddQueriesToRequest
的字典信息。
字典的条目标识ocelot将怎么转换,键会作为另外一个claim,header, query parameter的键。
Claims[CustomerId]标识我么就去到claims获取类型为CustomerId的claim。接下来的大于号 (>) 用来分割字符串。最后的值一个值,或者一个带索引号的值。(具体相关,看下面的)
Claims to Claims Transformation
下面是一个 transforms claims to claims 的例子:
"AddClaimsToRequest": {
"UserType": "Claims[sub] > value[0] > |",
"UserId": "Claims[sub] > value[1] > |"
}
Ocelot会查找用户的sub claim,将其转换成UsetType claim和UserId claim。并且假设sub claim的格式为 “usertypevalue|useridvalue”。
Claims to Headers Tranformation
下面是一个 transforms claims to headers 的例子
"AddHeadersToRequest": {
"CustomerId": "Claims[sub] > value[1] > |"
}
Ocelot会查找用户的sub claim,将其转换成一个CustomerId 请求头。并且假设sub claim的格式为 “usertypevalue|useridvalue”。
Claims to Query String Parameters Transformation
下面是一个 transforms claims to query string parameters的例子:
"AddQueriesToRequest": {
"LocationId": "Claims[LocationId] > value",
}
Ocelot会查找LocationId claim, 将其转为一个querystring parameter。并转发给下游。