Azure APIM 中 validate-jwt 的自定义响应正文

Custom response body for validate-jwt in Azure APIM

我正在验证来自 Azure API 管理器的 JWT 令牌。我正在寻找验证失败时更改响应正文的选项。根据文档 https://docs.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies.

<validate-jwt
    header-name="name of http header containing the token (use query-parameter-name attribute if the token is passed in the URL)"
    failed-validation-httpcode="401"
    failed-validation-error-message="Invalid Token"
    token-value="expression returning JWT token as a string"
    require-expiration-time="true|false"
    require-scheme="scheme"
    require-signed-tokens="true|false"
    clock-skew="allowed clock skew in seconds"
    output-token-variable-name="name of a variable to receive a JWT object representing successfully validated token">

如果我设置

  failed-validation-httpcode="401" and  failed-validation-error-message="Invalid Token"

验证失败时的响应将是

{
    "statusCode": 401,
    "message": "Invalid Token"
}

现在我需要将正文中的 "statusCode" 更改为 "status" 对

的响应
{
    "status": 401,
    "message": "Invalid Token"
}

在 Azure API 管理器中可以吗?

我已经通过以下转换策略成功解决了这个问题。

 <on-error>
     <choose>
         <when condition="@(context.Response.StatusCode == 401)">
            <find-and-replace from="statusCode" to="status" />
         </when>
    </choose> 
</on-error>