【发布时间】:2019-06-04 13:36:41
【问题描述】:
我在重用 APIM 表达式时遇到问题。
具体来说,像上面一样创建下面的命名值,
name
JWTValidator
@(
@"<validate-jwt header-name='Authorization' failed-validation-httpcode='401' failed-validation-error-message='Error: expired token or invalid token' require-expiration-time='true' require-scheme='Bearer' require-signed-tokens='true'>
<openid-config url='xxx' />
<audiences>
<audience>xxx</audience>
</audiences>
<issuers>
<issuer>https://xxx</issuer>
</issuers>
</validate-jwt>"
)
以及以下政策:
<policies>
<inbound>
<base />
{{JWTValidator}}
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
但是,策略元素被移除而不是插入。
有什么想法吗?
有没有更好的方法来重用策略?
更新
我想将JWTValidator 定义为命名值,并尽可能在产品级别使用它,否则,API 级别。
更新 2
我已更改为下面,但是,{{JWTValidator}} 在保存时会自动删除。
请注意JWTValidator的值保存成功,这可能意味着语法正确。
<policies>
<inbound>
{{JWTValidator}}
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-properties
https://docs.microsoft.com/en-us/azure/api-management/api-management-policy-expressions
【问题讨论】:
标签: azure azure-api-management