Ocelot中文文件-轉換Claims

weixin_33976072發表於2018-05-08

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轉換的例子

    "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的轉換。

previous
next

相關文章