簡體   English   中英

如何自定義 Anypoint API 管理器標准策略生成的錯誤消息?

[英]How to customise an error message generated by the Anypoint API manager standard policy?

CloudHub (Mule 4.4) 上運行了一個 API,並受到標准SLA 速率限制策略的保護。

我們需要提供自定義錯誤消息正文,而不是在身份驗證失敗時由策略生成的默認錯誤消息正文。

策略返回的默認錯誤正文如下所示:

{
"error": "Invalid client id or secret"
}

當我在 Studio 的調試器中運行應用程序時,它正在攔截異常,我可以看到策略產生的錯誤類型是 CLIENT-ID-ENFORCEMENT:INVALID_CREDENTIALS。
這也表明異常正在到達 Mule 應用程序本身。 因此,它必須是一種用自定義處理程序覆蓋默認處理程序的方法。

首先,我嘗試將錯誤類型的處理程序添加到其他 API Kit 錯誤旁邊的 HTTP 請求處理流程中。 它沒有攔截錯誤。

然后,我為錯誤類型定義了一個單獨的錯誤處理程序,並在全局配置中將其設置為“默認錯誤處理程序”。

<configuration doc:name="Configuration" doc:id="7a7e22cd-2ee7-42ee-af15-eaf2693d72d9" defaultErrorHandler-ref="apiErrorHandler" />
<error-handler name="apiErrorHandler">
<on-error-propagate enableNotifications="true" logException="true" type="CLIENT-ID-ENFORCEMENT:*">
<ee:transform xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
{message: "Unauthorised"}]]></ee:set-payload>
</ee:message>
</on-error-propagate>
</error-handler>

這也沒有奏效。

您能否建議正確的方法來自定義返回標准 SLA 策略的錯誤消息?

需要明確的是,我很清楚可以編寫自己的自定義策略。 但目的是保持標准,只是定制一些錯誤類型的響應。

目前這是不可能的。 策略必須處理自己的錯誤,它們不能在流中被攔截。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM