شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
خط مشی AccessControl
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | The client IP address, or an IP address passed
in the API request, matches an IP address specified in the <SourceAddress> element within
the <MatchRule> element of the Access Control Policy, and the action attribute of the
<MatchRule> element is set to DENY. |
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see Variables specific to policy errors.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | acl.AC-AllowAccess.failed = true |
Example fault response
{
"fault":{
"faultstring":"Access Denied for client ip : 52.211.243.3"
"detail":{
"errorcode":"accesscontrol.IPDeniedAccess"
}
}
}Example fault rule
<FaultRule name="IPDeniedAccess">
<Step>
<Name>AM-IPDeniedAccess</Name>
<Condition>(fault.name Matches "IPDeniedAccess") </Condition>
</Step>
<Condition>(acl.failed = true) </Condition>
</FaultRule>خط مشی AccessEntity
برای اطلاعات مرتبط، به آنچه باید در مورد خطاهای خط مشی و خطاهای مدیریتی بدانید مراجعه کنید.
خطاهای زمان اجرا
هیچ یک.
خطاهای استقرار
| نام خطا | رشته خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|---|
InvalidEntityType | Invalid type [entity_type] in ACCESSENTITYStepDefinition [policy_name] | N/A | نوع موجودیت مورد استفاده باید یکی از انواع پشتیبانی شده باشد. |
خط مشی AssignMessage
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.assignmessage.SetVariableFailed | 500 | خط مشی قادر به تنظیم متغیر نبود. رشته خطا را برای نام متغیر حل نشده ببینید. | |
steps.assignmessage.VariableOfNonMsgType | 500 | اگر مشخصه متغیرهای نوع پیام، کل درخواستها و پاسخهای HTTP را نشان میدهند. متغیرهای جریان لبه داخلی | build |
steps.assignmessage.UnresolvedVariable | 500 | این خطا در صورتی رخ می دهد که متغیر مشخص شده در خط مشی Assign Message یکی از این موارد باشد:
| build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
InvalidIndex | اگر شاخص مشخص شده در عناصر <Copy> و/یا <Remove> خط مشی Assign Message 0 یا یک عدد منفی باشد، در آن صورت استقرار API Proxy ناموفق است. | build |
InvalidVariableName | اگر عنصر فرزند <Name> خالی باشد یا در عنصر <AssignVariable> مشخص نشده باشد، استقرار پراکسی API با شکست مواجه می شود زیرا نام متغیر معتبری وجود ندارد که بتوان مقداری به آن اختصاص داد. یک نام متغیر معتبر مورد نیاز است. | build |
InvalidPayload | محموله مشخص شده در خط مشی نامعتبر است. |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "UnresolvedVariable" |
assignmessage. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | assignmessage.AM-SetResponse.failed = true |
نمونه پاسخ خطا
{ "fault":{ "detail":{ "errorcode":"steps.assignmessage.VariableOfNonMsgType" }, "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message" } }
مثال قانون خطا
<FaultRule name="Assign Message Faults"> <Step> <Name>AM-CustomNonMessageTypeErrorResponse</Name> <Condition>(fault.name Matches "VariableOfNonMsgType") </Condition> </Step> <Step> <Name>AM-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(assignmessage.failed = true) </Condition> </FaultRule>
خط مشی احراز هویت اولیه
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource | 500 | در رمزگشایی که رشته رمزگذاری شده Base64 ورودی حاوی مقدار معتبری نیست یا سربرگ بد شکل است (مثلاً با "Basic" شروع نمی شود). | build |
steps.basicauthentication.UnresolvedVariable | 500 | متغیرهای منبع مورد نیاز برای رمزگشایی یا رمزگذاری وجود ندارد. این خطا تنها زمانی رخ می دهد که IgnoreUnresolvedVariables نادرست باشد. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | زمانی رخ می دهد | رفع کنید |
|---|---|---|
UserNameRequired | عنصر <User> باید برای عملیات نامگذاری شده وجود داشته باشد. | build |
PasswordRequired | عنصر <Password> باید برای عملیات نامگذاری شده وجود داشته باشد. | build |
AssignToRequired | عنصر <AssignTo> باید برای عملیات نامگذاری شده وجود داشته باشد. | build |
SourceRequired | عنصر <Source> باید برای عملیات نامگذاری شده وجود داشته باشد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "UnresolvedVariable" |
BasicAuthentication. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | BasicAuthentication.BA-Authenticate.failed = true |
نمونه پاسخ خطا
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
مثال قانون خطا
<FaultRule name="Basic Authentication Faults">
<Step>
<Name>AM-UnresolvedVariable</Name>
<Condition>(fault.name Matches "UnresolvedVariable") </Condition>
</Step>
<Step>
<Name>AM-AuthFailedResponse</Name>
<Condition>(fault.name = "InvalidBasicAuthenticationSource")</Condition>
</Step>
<Condition>(BasicAuthentication.BA-Authentication.failed = true) </Condition>
</FaultRule>خط مشی ConcurrentRateLimit
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|
policies.concurrentratelimit.ConcurrentRatelimtViolation | 503 | اتصال ConcurrentRatelim بیش از حد مجاز است. محدودیت اتصال: {0} توجه: کد خطا نشان داده شده در سمت چپ صحیح است، اگرچه حاوی یک غلط املایی ("limt") است. هنگام ایجاد قوانین خطا برای به دام انداختن این خطا، حتماً از کد دقیقاً همانطور که در اینجا نشان داده شده است استفاده کنید. |
خطاهای استقرار
| نام خطا | زمانی رخ می دهد |
|---|---|
InvalidCountValue | مقدار شمارش نامعتبر ConcurrentRatelim مشخص شده است. |
ConcurrentRatelimitStepAttachment\ | ضمیمه خطمشی Ratelimit همزمان {0} در مسیرهای درخواست/پاسخ/عیب پروکسی مجاز نیست. این سیاست باید در نقطه پایانی هدف قرار گیرد. |
ConcurrentRatelimitStepAttachment\ | در مسیرهای درخواست/پاسخ/عیب مورد نظر، پیوست خط مشی محدودیت نرخی همزمان {0} وجود ندارد. این خط مشی باید در Target Request Preflow، Target Response Postflow و DefaultFaultRule قرار گیرد. |
InvalidTTLForMessageTimeOut | مقدار ttl نامعتبر ConcurrentRatelimit برای زمان پایان پیام مشخص شده است. باید یک عدد صحیح مثبت باشد. |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "ConcurrentRatelimtViolation"توجه: کد خطا نشان داده شده در مثال صحیح است، اگرچه حاوی یک غلط املایی ("limt") است. لطفاً هنگام ایجاد قوانین خطا برای به دام انداختن این خطا حتماً از کد دقیقاً همانطور که در اینجا نشان داده شده است استفاده کنید. |
concurrentratelimit. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | concurrentratelimit.CRL-RateLimitPolicy.failed = true |
نمونه پاسخ خطا
در صورت تجاوز از حد مجاز، این خط مشی فقط وضعیت HTTP 503 را به مشتری برمی گرداند.
مثال قانون خطا
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRules>
<FaultRule name="Quota Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "ConcurrentRatelimtViolation") </Condition>
</Step>
<Condition>concurrentratelimit.CRL-RateLimitPolicy.failed=true</Condition>
</FaultRule>
</FaultRules>خط مشی DecodeJWS
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|
steps.jws.FailedToDecode | 401 | این خط مشی قادر به رمزگشایی JWS نبود. JWS احتمالاً خراب است. |
steps.jws.FailedToResolveVariable | 401 | زمانی رخ می دهد که متغیر جریان مشخص شده در عنصر <Source> خط مشی وجود نداشته باشد. |
steps.jws.InvalidClaim | 401 | برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه. |
steps.jws.InvalidJsonFormat | 401 | JSON نامعتبر در هدر JWS یافت شد. |
steps.jws.InvalidJws | 401 | این خطا زمانی رخ می دهد که تأیید امضای JWS ناموفق باشد. |
steps.jws.InvalidPayload | 401 | محموله JWS نامعتبر است. |
steps.jws.InvalidSignature | 401 | <DetachedContent> حذف شده است و JWS دارای یک بار محتوای جدا شده است. |
steps.jws.MissingPayload | 401 | محموله JWS وجود ندارد. |
steps.jws.NoAlgorithmFoundInHeader | 401 | زمانی رخ می دهد که JWS سربرگ الگوریتم را حذف کند. |
steps.jws.UnknownException | 401 | یک استثنا ناشناخته رخ داد. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | زمانی رخ می دهد |
|---|---|
InvalidAlgorithm | تنها مقادیر معتبر عبارتند از: RS256، RS384، RS512، PS256، PS384، PS512، ES256، ES384، ES512، HS256، HS384، HS512. |
| سایر خطاهای احتمالی استقرار |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "TokenExpired" |
JWS.failed | همه خط مشی های JWS در صورت خرابی یک متغیر را تنظیم می کنند. | jws.JWS-Policy.failed = true |
نمونه پاسخ خطا
برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.
مثال قانون خطا
<FaultRules>
<FaultRule name="JWS Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWS.failed=true</Condition>
</FaultRule>
</FaultRules>خط مشی DecodeJWT
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | ثابت |
|---|---|---|---|
steps.jwt.FailedToDecode | 401 | زمانی رخ می دهد که خط مشی قادر به رمزگشایی JWT نباشد. JWT ممکن است بد شکل، نامعتبر یا غیر قابل رمزگشایی باشد. | build |
steps.jwt.FailedToResolveVariable | 401 | زمانی رخ می دهد که متغیر جریان مشخص شده در عنصر <Source> خط مشی وجود نداشته باشد. | |
steps.jwt.InvalidToken | 401 | زمانی رخ می دهد که متغیر جریان مشخص شده در عنصر <Source> خط مشی خارج از محدوده باشد یا قابل حل نباشد. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidEmptyElement | زمانی رخ می دهد که متغیر جریان حاوی JWT که باید رمزگشایی شود در عنصر <Source> خط مشی مشخص نشده باشد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "TokenExpired" |
JWT.failed | همه خط مشی های JWT متغیرهای یکسانی را در صورت خرابی تنظیم می کنند. | JWT.failed = true |
نمونه پاسخ خطا
برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.
مثال قانون خطا
<FaultRules>
<FaultRule name="JWT Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWT.failed=true</Condition>
</FaultRule>
</FaultRules>
سیاست ExtractVariables
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.extractvariables.ExecutionFailed | 500 | این خطا زمانی رخ می دهد که:
| build |
steps.extractvariables.ImmutableVariable | 500 | متغیر مورد استفاده در خط مشی تغییرناپذیر است. خط مشی قادر به تنظیم این متغیر نبود. | |
steps.extractvariables.InvalidJSONPath | 500 | اگر از یک مسیر JSON نامعتبر در عنصر JSONPath خط مشی استفاده شود، این خطا رخ می دهد. به عنوان مثال، اگر یک بار JSON دارای Name شیء نباشد، اما Name به عنوان مسیر در خط مشی مشخص کنید، این خطا رخ می دهد. | build |
steps.extractvariables.JsonPathParsingFailure | 500 | این خطا زمانی رخ می دهد که خط مشی قادر به تجزیه یک مسیر JSON و استخراج داده ها از متغیر جریان مشخص شده در عنصر Source نباشد. به طور معمول این اتفاق می افتد اگر متغیر جریان مشخص شده در عنصر Source در جریان فعلی وجود نداشته باشد. | build |
steps.extractvariables.SetVariableFailed | 500 | اگر خط مشی نتواند مقدار یک متغیر را تنظیم کند، این خطا رخ می دهد. این خطا معمولاً در صورتی اتفاق میافتد که بخواهید مقادیری را به چندین متغیر اختصاص دهید که نام آنها با کلمات مشابه در قالب جدا شده از نقطه تو در تو آغاز میشود. | build |
steps.extractvariables.SourceMessageNotAvailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر Source سیاست یکی از این موارد باشد:
| build |
steps.extractvariables.UnableToCast | 500 | این خطا در صورتی رخ می دهد که خط مشی قادر به ارسال مقدار استخراج شده به یک متغیر نباشد. معمولاً اگر بخواهید مقدار یک نوع داده را روی متغیری از نوع داده دیگر تنظیم کنید، این اتفاق می افتد. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
NothingToExtract | اگر خط مشی هیچ یک از عناصر URIPath ، QueryParam ، Header ، FormParam ، XMLPayload ، یا JSONPayload را نداشته باشد، استقرار پروکسی API ناموفق است، زیرا چیزی برای استخراج وجود ندارد. | build |
NONEmptyPrefixMappedToEmptyURI | این خطا در صورتی رخ می دهد که خط مشی دارای پیشوندی باشد که در عنصر Namespace زیر عنصر XMLPayload تعریف شده است، اما URI تعریف نشده باشد. | build |
DuplicatePrefix | این خطا در صورتی رخ می دهد که خط مشی دارای پیشوند یکسانی باشد که بیش از یک بار در عنصر Namespace زیر عنصر XMLPayload تعریف شده است. | build |
NoXPathsToEvaluate | اگر این خطمشی عنصر XPath را در عنصر XMLPayload نداشته باشد، استقرار پراکسی API با این خطا با شکست مواجه میشود. | build |
EmptyXPathExpression | اگر خط مشی دارای عبارت XPath خالی در عنصر XMLPayload باشد، استقرار پروکسی API با شکست مواجه می شود. | build |
NoJSONPathsToEvaluate | اگر این خطمشی عنصر JSONPath در عنصر JSONPayload نداشته باشد، استقرار پراکسی API با این خطا با شکست مواجه میشود. | build |
EmptyJSONPathExpression | اگر خط مشی دارای عبارت XPath خالی در عنصر XMLPayload باشد، استقرار پروکسی API با شکست مواجه می شود. | build |
MissingName | اگر خط مشی دارای ویژگی name در هیچ یک از عناصر خط مشی مانند QueryParam ، Header ، FormParam یا Variable نباشد، در آن صورت استقرار پروکسی API با شکست مواجه می شود. | build |
PatternWithoutVariable | اگر این خط مشی دارای متغیر مشخص شده در عنصر Pattern نباشد، استقرار پروکسی API با شکست مواجه می شود. عنصر Pattern به نام متغیری نیاز دارد که داده های استخراج شده در آن ذخیره می شود. | build |
CannotBeConvertedToNodeset | اگر خط مشی دارای عبارت XPath باشد که در آن نوع Variable به عنوان nodeset تعریف شده است، اما عبارت را نمی توان به nodeset تبدیل کرد، در این صورت استقرار پراکسی API با شکست مواجه می شود. | build |
JSONPathCompilationFailed | خط مشی نمی تواند مسیر JSON مشخصی را کامپایل کند. | |
InstantiationFailed | این خط مشی قابل اجرا نبود. | |
XPathCompilationFailed | اگر پیشوند یا مقدار مورد استفاده در عنصر XPath بخشی از هیچ یک از فضاهای نام اعلام شده در خط مشی نباشد، در این صورت استقرار پراکسی API با شکست مواجه می شود. | build |
InvalidPattern | اگر تعریف عنصر Pattern در هر یک از عناصر مانند URIPath ، QueryParam ، Header ، FormParam ، XMLPayload یا JSONPayload در خطمشی نامعتبر باشد، در این صورت استقرار پراکسی API با شکست مواجه میشود. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name = "SourceMessageNotAvailable" |
extractvariables. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | extractvariables.EV-ParseJsonResponse.failed = true |
نمونه پاسخ خطا
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
مثال قانون خطا
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>
خط مشی GenerateJWS
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|
steps.jws.GenerationFailed | 401 | این خط مشی قادر به ایجاد JWS نبود. |
steps.jws.InsufficientKeyLength | 401 | برای یک کلید کمتر از 32 بایت برای الگوریتم HS256 |
steps.jws.InvalidClaim | 401 | برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه. |
steps.jws.InvalidCurve | 401 | منحنی مشخص شده توسط کلید برای الگوریتم منحنی بیضی معتبر نیست. |
steps.jws.InvalidJsonFormat | 401 | JSON نامعتبر در هدر JWS یافت شد. |
steps.jws.InvalidPayload | 401 | محموله JWS نامعتبر است. |
steps.jws.InvalidSignature | 401 | <DetachedContent> حذف شده است و JWS دارای یک بار محتوای جدا شده است. |
steps.jws.KeyIdMissing | 401 | خطمشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده میکند، اما JWS امضاشده دارای ویژگی kid در سرصفحه نیست. |
steps.jws.KeyParsingFailed | 401 | کلید عمومی از اطلاعات کلید داده شده قابل تجزیه نیست. |
steps.jws.MissingPayload | 401 | محموله JWS وجود ندارد. |
steps.jws.NoAlgorithmFoundInHeader | 401 | زمانی رخ می دهد که JWS سربرگ الگوریتم را حذف کند. |
steps.jws.SigningFailed | 401 | در GenerateJWS، برای کلیدی کمتر از حداقل اندازه الگوریتمهای HS384 یا HS512 |
steps.jws.UnknownException | 401 | یک استثنا ناشناخته رخ داد. |
steps.jws.WrongKeyType | 401 | نوع کلید اشتباه مشخص شده است. به عنوان مثال، اگر یک کلید RSA برای یک الگوریتم منحنی بیضی یا یک کلید منحنی برای یک الگوریتم RSA مشخص کنید. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | زمانی رخ می دهد |
|---|---|
InvalidAlgorithm | تنها مقادیر معتبر عبارتند از: RS256، RS384، RS512، PS256، PS384، PS512، ES256، ES384، ES512، HS256، HS384، HS512. |
| سایر خطاهای احتمالی استقرار |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "TokenExpired" |
JWS.failed | همه خط مشی های JWS در صورت خرابی یک متغیر را تنظیم می کنند. | jws.JWS-Policy.failed = true |
نمونه پاسخ خطا
برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.
مثال قانون خطا
<FaultRules>
<FaultRule name="JWS Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWS.failed=true</Condition>
</FaultRule>
</FaultRules>ایجاد خط مشی JWT
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration | 401 | زمانی رخ می دهد که خط مشی تأیید چندین الگوریتم داشته باشد. |
steps.jwt.AlgorithmMismatch | 401 | الگوریتم مشخصشده در خطمشی Generate با الگوریتم مورد انتظار در خطمشی تأیید مطابقت نداشت. الگوریتم های مشخص شده باید مطابقت داشته باشند. |
steps.jwt.FailedToDecode | 401 | این خط مشی قادر به رمزگشایی JWT نبود. JWT احتمالاً خراب است. |
steps.jwt.GenerationFailed | 401 | این سیاست قادر به ایجاد JWT نبود. |
steps.jwt.InsufficientKeyLength | 401 | برای یک کلید کمتر از 32 بایت برای الگوریتم HS256، کمتر از 48 بایت برای الگوریتم HS386، و کمتر از 64 بایت برای الگوریتم HS512. |
steps.jwt.InvalidClaim | 401 | برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه. |
steps.jwt.InvalidCurve | 401 | منحنی مشخص شده توسط کلید برای الگوریتم منحنی بیضی معتبر نیست. |
steps.jwt.InvalidJsonFormat | 401 | JSON نامعتبر در سرصفحه یا محموله یافت شد. |
steps.jwt.InvalidToken | 401 | این خطا زمانی رخ می دهد که تأیید امضای JWT ناموفق باشد. |
steps.jwt.JwtAudienceMismatch | 401 | ادعای مخاطب در راستیآزمایی رمز شکست خورد. |
steps.jwt.JwtIssuerMismatch | 401 | ادعای صادرکننده در تأیید توکن ناموفق بود. |
steps.jwt.JwtSubjectMismatch | 401 | ادعای موضوع در تأیید رمز شکست خورد. |
steps.jwt.KeyIdMissing | 401 | خطمشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده میکند، اما JWT امضاشده دارای ویژگی kid در سرصفحه نیست. |
steps.jwt.KeyParsingFailed | 401 | کلید عمومی از اطلاعات کلید داده شده قابل تجزیه نیست. |
steps.jwt.NoAlgorithmFoundInHeader | 401 | زمانی اتفاق میافتد که JWT فاقد سربرگ الگوریتم باشد. |
steps.jwt.NoMatchingPublicKey | 401 | خطمشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده میکند، اما kid در JWT امضا شده در JWKS فهرست نشده است. |
steps.jwt.SigningFailed | 401 | در GenerateJWT، برای کلیدی کمتر از حداقل اندازه الگوریتمهای HS384 یا HS512 |
steps.jwt.TokenExpired | 401 | این خطمشی تلاش میکند یک توکن منقضی شده را تأیید کند. |
steps.jwt.TokenNotYetValid | 401 | رمز هنوز معتبر نیست. |
steps.jwt.UnhandledCriticalHeader | 401 | سرصفحه ای که توسط خط مشی Verify JWT در سرصفحه crit یافت شده است در KnownHeaders فهرست نشده است. |
steps.jwt.UnknownException | 401 | یک استثنا ناشناخته رخ داد. |
steps.jwt.WrongKeyType | 401 | نوع کلید اشتباه مشخص شده است. به عنوان مثال، اگر یک کلید RSA برای یک الگوریتم منحنی بیضی یا یک کلید منحنی برای یک الگوریتم RSA مشخص کنید. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidNameForAdditionalClaim | اگر ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> یکی از نامهای ثبتشده زیر باشد، استقرار ناموفق خواهد بود: kid ، iss ، sub ، aud ، iat ، exp ، nbf ، یا jti . | build |
InvalidTypeForAdditionalClaim | اگر ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalClaims> از نوع string ، number ، boolean یا map نباشد، استقرار با شکست مواجه خواهد شد. | build |
MissingNameForAdditionalClaim | اگر نام ادعا در عنصر فرزند <Claim> عنصر <AdditionalClaims> مشخص نشده باشد، استقرار با شکست مواجه خواهد شد. | build |
InvalidNameForAdditionalHeader | این خطا زمانی رخ می دهد که نام ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> alg یا typ باشد. | build |
InvalidTypeForAdditionalHeader | اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalClaims> از نوع string ، number ، boolean یا map نباشد، استقرار با شکست مواجه خواهد شد. | build |
InvalidValueOfArrayAttribute | این خطا زمانی رخ می دهد که مقدار ویژگی آرایه در عنصر فرزند <Claim> عنصر <AdditionalClaims> روی true یا false تنظیم نشده باشد. | build |
InvalidConfigurationForActionAndAlgorithm | اگر عنصر <PrivateKey> با الگوریتم های خانواده HS یا عنصر <SecretKey> با الگوریتم های خانواده RSA استفاده شود، استقرار با شکست مواجه می شود. | build |
InvalidValueForElement | اگر مقدار مشخص شده در عنصر <Algorithm> یک مقدار پشتیبانی نشده باشد، استقرار با شکست مواجه خواهد شد. | build |
MissingConfigurationElement | اگر عنصر <PrivateKey> با الگوریتم های خانواده RSA استفاده نشود یا عنصر <SecretKey> با الگوریتم های خانواده HS استفاده نشود، این خطا رخ می دهد. | build |
InvalidKeyConfiguration | اگر عنصر فرزند <Value> در عناصر <PrivateKey> یا <SecretKey> تعریف نشده باشد، استقرار با شکست مواجه خواهد شد. | build |
EmptyElementForKeyConfiguration | اگر ویژگی ref عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> خالی یا نامشخص باشد، استقرار با شکست مواجه خواهد شد. | build |
InvalidVariableNameForSecret | این خطا در صورتی رخ می دهد که نام متغیر جریان مشخص شده در ویژگی ref عنصر فرزند <Value> از عناصر <PrivateKey> یا <SecretKey> دارای پیشوند خصوصی (private.) نباشد. | build |
InvalidSecretInConfig | اگر عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> دارای پیشوند خصوصی (private.) نباشد، این خطا رخ می دهد. | build |
InvalidTimeFormat | اگر مقدار مشخص شده در عنصر <NotBefore> از قالب پشتیبانی شده استفاده نکند، استقرار با شکست مواجه خواهد شد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "TokenExpired" |
JWT.failed | همه خط مشی های JWT متغیرهای یکسانی را در صورت خرابی تنظیم می کنند. | JWT.failed = true |
نمونه پاسخ خطا
برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.
مثال قانون خطا
<FaultRules>
<FaultRule name="JWT Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWT.failed=true</Condition>
</FaultRule>
</FaultRules>
خط مشی JavaCallout
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.javacallout.ExecutionError | 500 | زمانی اتفاق میافتد که کد جاوا در طول اجرای یک خطمشی JavaCallout یک استثنا ایجاد میکند یا null را برمیگرداند. | build |
خطاهای استقرار
این خطاها می توانند زمانی رخ دهند که پروکسی حاوی خط مشی مستقر است.
| نام خطا | رشته خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|---|
ResourceDoesNotExist | Resource with name [name] and type [type] does not exist | N/A | فایل مشخص شده در عنصر <ResourceURL> وجود ندارد. |
JavaCalloutInstantiationFailed | Failed to instantiate the JavaCallout Class [classname] | N/A | فایل کلاس مشخص شده در عنصر <ClassName> در jar نیست. |
IncompatibleJavaVersion | Failed to load java class [classname] definition due to - [reason] | N/A | رشته خطا را ببینید. همچنین به نرم افزارهای پشتیبانی شده و نسخه های پشتیبانی شده مراجعه کنید. |
JavaClassNotFoundInJavaResource | Failed to find the ClassName in java resource [jar_name] - [class_name] | N/A | رشته خطا را ببینید. |
JavaClassDefinitionNotFound | Failed to load java class [class_name] definition due to - [reason] | N/A | رشته خطا را ببینید. |
NoAppropriateConstructor | No appropriate constructor found in JavaCallout class [class_name] | N/A | رشته خطا را ببینید. |
NoResourceForURL | Could not locate a resource with URL [string] | N/A | رشته خطا را ببینید. |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "ExecutionError" |
javacallout. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | javacallout.JC-GetUserData.failed = true |
نمونه پاسخ خطا
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
مثال قانون خطا
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
خط مشی جاوا اسکریپت
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.javascript.ScriptExecutionFailed | 500 | خط مشی جاوا اسکریپت می تواند انواع مختلفی از خطاهای ScriptExecutionFailed را ایجاد کند. انواع خطاهای رایج عبارتند از RangeError ، ReferenceError ، SyntaxError ، TypeError و URIError . | build |
steps.javascript.ScriptExecutionFailedLineNumber | 500 | خطایی در کد جاوا اسکریپت رخ داد. برای جزئیات بیشتر به رشته خطا مراجعه کنید. | N/A |
steps.javascript.ScriptSecurityError | 500 | هنگام اجرای جاوا اسکریپت یک خطای امنیتی روی داد. برای جزئیات بیشتر به رشته خطا مراجعه کنید. | N/A |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
InvalidResourceUrlFormat | اگر قالب URL منبع مشخص شده در <ResourceURL> یا عنصر <IncludeURL> خط مشی جاوا اسکریپت نامعتبر باشد، در این صورت استقرار پروکسی API با شکست مواجه می شود. | build |
InvalidResourceUrlReference | اگر عناصر <ResourceURL> یا <IncludeURL> به یک فایل جاوا اسکریپت اشاره می کنند که وجود ندارد، در این صورت استقرار پروکسی API با شکست مواجه می شود. فایل منبع ارجاع شده باید در سطح پروکسی API، محیط یا سطح سازمان باشد. | build |
WrongResourceType | اگر عناصر <ResourceURL> یا <IncludeURL> خط مشی جاوا اسکریپت به هر نوع منبعی غیر از jsc (فایل جاوا اسکریپت) اشاره داشته باشند، این خطا در حین استقرار رخ می دهد. | build |
NoResourceURLOrSource | اگر عنصر <ResourceURL> اعلان نشده باشد یا URL منبع در این عنصر تعریف نشده باشد، استقرار خط مشی جاوا اسکریپت می تواند با این خطا شکست بخورد. عنصر <ResourceURL> یک عنصر اجباری است. یا، عنصر <IncludeURL> اعلام شده است اما URL منبع در این عنصر تعریف نشده است. عنصر <IncludeURL> اختیاری است، اما اگر اعلام شود، URL منبع باید در عنصر <IncludeURL> مشخص شود. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "ScriptExecutionFailed" |
javascript. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | javascript.JavaScript-1.failed = true |
نمونه پاسخ خطا
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"", "detail": { "errorcode": "steps.javascript.ScriptExecutionFailed" } } }
مثال قانون خطا
<FaultRule name="JavaScript Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition> </Step> <Condition>(javascript.JavaScript-1.failed = true) </Condition> </FaultRule>
خط مشی JSONThreatProtection
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.jsonthreatprotection.ExecutionFailed | 500 | خط مشی JSONThreatProtection می تواند انواع مختلفی از خطاهای ExecutionFailed را ایجاد کند. بیشتر این خطاها زمانی رخ میدهند که از یک آستانه مشخص در خطمشی تجاوز کند. این نوع خطاها عبارتند از: طول نام ورودی شیء ، تعداد ورودی شیء ، تعداد عناصر آرایه ، عمق ظرف ، طول مقدار رشته رشته . این خطا همچنین زمانی رخ میدهد که payload دارای یک شی JSON نامعتبر باشد. | build |
steps.jsonthreatprotection.SourceUnavailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
| build |
steps.jsonthreatprotection.NonMessageVariable | 500 | این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست. | build |
خطاهای استقرار
هیچ کدام
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "SourceUnavailable" |
jsonattack. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | jsonattack.JTP-SecureRequest.failed = true |
نمونه پاسخ خطا
{
"fault": {
"faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}مثال قانون خطا
<FaultRule name="JSONThreatProtection Policy Faults">
<Step>
<Name>AM-CustomErrorResponse</Name>
<Condition>(fault.name Matches "ExecutionFailed") </Condition>
</Step>
<Condition>(jsonattack.JPT-SecureRequest.failed = true) </Condition>
</FaultRule>
انواع خط مشی JSONThreatProtection کدهای خطای زیر را تعریف می کند:
خط مشی JSONtoXML
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.jsontoxml.ExecutionFailed | 500 | بار ورودی (JSON) خالی است یا ورودی (JSON) که به خط مشی JSON به XML ارسال شده است نامعتبر یا نادرست است. | build |
steps.jsontoxml.InCompatibleTypes | 500 | این خطا در صورتی رخ می دهد که نوع متغیر تعریف شده در عنصر <Source> و عنصر <OutputVariable> یکسان نباشد. اجباری است که نوع متغیرهای موجود در عنصر <Source> و عنصر <OutputVariable> مطابقت داشته باشد. انواع معتبر message و string هستند. | build |
steps.jsontoxml.InvalidSourceType | 500 | این خطا در صورتی رخ می دهد که نوع متغیر مورد استفاده برای تعریف عنصر <Source> نامعتبر باشد. انواع معتبر متغیر message و string هستند. | build |
steps.jsontoxml.OutputVariableIsNotAvailable | 500 | اگر متغیر مشخص شده در عنصر <Source> سیاست JSON به XML از نوع string باشد و عنصر <OutputVariable> تعریف نشده باشد، این خطا رخ می دهد. عنصر <OutputVariable> زمانی اجباری است که متغیر تعریف شده در عنصر <Source> از نوع رشته باشد. | build |
steps.jsontoxml.SourceUnavailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> خط مشی JSON به XML یکی از این موارد باشد:
| build |
خطاهای استقرار
هیچ کدام
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "SourceUnavailable" |
jsontoxml. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | jsontoxml.JSON-to-XML-1.failed = true |
نمونه پاسخ خطا
{
"fault": {
"faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
"detail": {
"errorcode": "steps.json2xml.SourceUnavailable"
}
}
}مثال قانون خطا
<FaultRule name="JSON To XML Faults">
<Step>
<Name>AM-SourceUnavailableMessage</Name>
<Condition>(fault.name Matches "SourceUnavailable") </Condition>
</Step>
<Step>
<Name>AM-BadJSON</Name>
<Condition>(fault.name = "ExecutionFailed")</Condition>
</Step>
<Condition>(jsontoxml.JSON-to-XML-1.failed = true) </Condition>
</FaultRule>خط مشی KeyValueMapOperations
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | ثابت |
|---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed | 500 | اگر بخواهید مقداری را از نقشه مقدار کلید رمزگذاری شده بازیابی کنید و مقدار آن را روی متغیری تنظیم کنید که نام آن پیشوند | build |
steps.keyvaluemapoperations.UnsupportedOperationException | 500 | اگر مشخصه | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidIndex | اگر ویژگی index مشخص شده در عنصر <Get> خط مشی عملیات نقشه ارزش کلیدی صفر یا یک عدد منفی باشد، در این صورت استقرار پراکسی API با شکست مواجه می شود. شاخص از 1 شروع می شود، بنابراین یک شاخص صفر یا منفی به عنوان نامعتبر در نظر گرفته می شود. | build |
KeyIsMissing | این خطا در صورتی رخ می دهد که عنصر <Key> به طور کامل گم شده باشد یا عنصر <Parameter> در عنصر <Key> در زیر <Entry> عنصر <InitialEntries> خط مشی Key Value Map Operations وجود نداشته باشد. | build |
ValueIsMissing | این خطا در صورتی رخ می دهد که عنصر <Value> در زیر عنصر <Entry> عنصر <InitialEntries> خط مشی Key Value Map Operations وجود نداشته باشد. | build |
خط مشی LDAP
این خط مشی از کدهای خطای زیر استفاده می کند:
| کد خطا | پیام |
|---|---|
InvalidAttributeName | Invalid attribute name {0}. |
InvalidSearchBase | Search base can not be empty. |
InvalidValueForPassword | Invalid value for password field. It can not be empty. |
InvalidSearchScope | Invalid scope {0}. Allowed scopes are {1}. |
InvalidUserCredentials | Invalid user credentials. |
InvalidExternalLdapReference | Invalid external ldap reference {0}. |
LdapResourceNotFound | Ldap resource {0} not found. |
BaseDNRequired | Base DN required. |
OnlyReferenceOrValueIsAllowed | Only value or reference is allowed for {0}. |
AttributesRequired | At least one attribute required for search action. |
UserNameIsNull | User name is null. |
SearchQueryAndUserNameCannotBePresent | Both search query and username can not be present in the authentication action. Please specify either one of them. |
خط مشی MessageLogging
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed | 500 | رشته خطا را ببینید. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
InvalidProtocol | اگر پروتکل مشخص شده در عنصر <Protocol> معتبر نباشد، اجرای سیاست MessageLogging ممکن است با این خطا با شکست مواجه شود. پروتکل های معتبر TCP و UDP هستند. برای ارسال پیام های syslog از طریق TLS/SSL، فقط TCP پشتیبانی می شود. | build |
InvalidPort | اگر شماره پورت در عنصر <Port> مشخص نشده باشد یا اگر معتبر نباشد، استقرار سیاست MessageLogging ممکن است با این خطا با شکست مواجه شود. شماره پورت باید یک عدد صحیح بزرگتر از صفر باشد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | messagelogging.ML-LogMessages.failed = true |
نمونه پاسخ خطا
{
"fault":{
"detail":{
"errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
},
"faultstring":"Execution failed"
}
}مثال قانون خطا
<FaultRule name="MessageLogging">
<Step>
<Name>ML-LogMessages</Name>
<Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
</Step>
<Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>خط مشی اعتبارسنجی OAS
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | |
|---|---|---|---|
steps.oasvalidation.Failed | 500 | بدنه پیام درخواست را نمی توان در برابر مشخصات OpenAPI ارائه شده تأیید کرد. | |
steps.oasvalidation.SourceMessageNotAvailable | 500 | متغیر مشخص شده در عنصر | |
steps.oasvalidation.NotMessageVariable | 500 | عنصر | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | |
|---|---|---|
ResourceDoesNotExist | مشخصات OpenAPI ارجاع شده در عنصر <OASResource> وجود ندارد. | |
ResourceCompileFailed | مشخصات OpenAPI که در استقرار گنجانده شده است حاوی خطاهایی است که از کامپایل شدن آن جلوگیری می کند. این به طور کلی نشان می دهد که مشخصات یک OpenAPI Specification 3.0 به خوبی شکل گرفته نیست. | |
BadResourceURL | مشخصات OpenAPI ارجاع شده در عنصر <OASResource> قابل پردازش نیست. اگر فایل JSON یا YAML نباشد یا URL فایل به درستی مشخص نشده باشد، ممکن است این اتفاق بیفتد. |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | جایی که | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "ResourceDoesNotExist" |
oasvalidation. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oasvalidation.myoaspolicy.failed = true |
خط مشی PopulateCache
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|
policies.populatecache.EntryCannotBeCached | 500 | ورودی را نمی توان کش کرد. شیء پیامی که در حافظه پنهان ذخیره می شود نمونه ای از کلاسی نیست که قابل سریال سازی باشد. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
InvalidCacheResourceReference | اگر عنصر <CacheResource> در خط مشی PopulateCache روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد. | build |
CacheNotFound | حافظه پنهان مشخص شده در عنصر <CacheResource> وجود ندارد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name = "EntryCannotBeCached" |
populatecache. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | populatecache.POP-CACHE-1.failed = true |
نمونه پاسخ خطا
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
مثال قانون خطا
<FaultRule name="Populate Cache Fault">
<Step>
<Name>AM-EntryCannotBeCached</Name>
<Condition>(fault.name Matches "EntryCannotBeCached") </Condition>
</Step>
<Condition>(populatecache.POP-CACHE-1.failed = true) </Condition>
</FaultRule>سیاست LookupCache
این بخش پیامهای خطا و متغیرهای جریانی را توضیح میدهد که وقتی این خطمشی خطا را راهاندازی میکند، تنظیم میشود. این اطلاعات مهم است که بدانید آیا در حال ایجاد قوانین خطا برای یک پروکسی هستید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
پیشوند کد خطا
N/A
خطاهای زمان اجرا
این سیاست هیچ گونه خطای زمان اجرا ایجاد نمی کند.
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidCacheResourceReference | اگر عنصر <CacheResource> روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر می شود وجود نداشته باشد، این خطا رخ می دهد. | build |
InvalidTimeout | اگر عنصر <CacheLookupTimeoutInSeconds> روی یک عدد منفی تنظیم شود، آنگاه استقرار پراکسی API با شکست مواجه می شود. | build |
CacheNotFound | این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد. | build |
متغیرهای خطا
N/A
نمونه پاسخ خطا
N/A
خط مشی InvalidateCache
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element in the InvalidateCache policy is set
to a name that does not exist in the environment where the API proxy is being deployed. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A
سیاست ResponseCache
این بخش پیامهای خطا و متغیرهای جریانی را توضیح میدهد که وقتی این خطمشی خطا را راهاندازی میکند، تنظیم میشود. این اطلاعات مهم است که بدانید آیا در حال ایجاد قوانین خطا برای یک پروکسی هستید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
پیشوند کد خطا
N/A
خطاهای زمان اجرا
این سیاست هیچ گونه خطای زمان اجرا ایجاد نمی کند.
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidTimeout | اگر عنصر <CacheLookupTimeoutInSeconds> خط مشی ResponseCache روی یک عدد منفی تنظیم شود، آنگاه استقرار پراکسی API با شکست مواجه می شود. | build |
InvalidCacheResourceReference | اگر عنصر <CacheResource> در یک خطمشی ResponseCache روی نامی تنظیم شود که در محیطی که پراکسی API در آن مستقر میشود، وجود نداشته باشد، این خطا رخ میدهد. | build |
ResponseCacheStepAttachmentNotAllowedReq | این خطا در صورتی رخ می دهد که همان سیاست ResponseCache به چندین مسیر درخواست در هر جریانی از یک پروکسی API متصل شود. | build |
ResponseCacheStepAttachmentNotAllowedResp | این خطا در صورتی رخ می دهد که همان سیاست ResponseCache به چندین مسیر پاسخ در هر جریانی از یک پروکسی API متصل شود. | build |
InvalidMessagePatternForErrorCode | اگر عنصر <SkipCacheLookup> یا <SkipCachePopulation> در یک خط مشی ResponseCache دارای یک شرط نامعتبر باشد، این خطا رخ می دهد. | build |
CacheNotFound | این خطا در صورتی رخ می دهد که حافظه پنهان ذکر شده در پیام خطا روی یک جزء خاص Message Processor ایجاد نشده باشد. | build |
متغیرهای خطا
N/A
نمونه پاسخ خطا
N/A
خط مشی OAuthV2
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Thrown by operations |
|---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | The access token is expired. |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | The access token was revoked. | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | The requested resource does not exist any of the API products associated with the access token. | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | The policy expected to find an access token in a variable specified in the
<AccessToken> element, but the variable could not be resolved. |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | The policy expected to find an authorization code in a variable specified in the
<Code> element, but the variable could not be resolved. |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | The policy expected to find the Client ID in a variable specified in the
<ClientId> element, but the variable could not be resolved. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | The policy expected to find a refresh token in a variable specified in the
<RefreshToken> element, but the variable could not be resolved. |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | The policy expected to find a token in a variable specified in the
<Tokens> element, but the variable could not be resolved. |
ValidateToken |
steps.oauth.v2.InsufficientScope |
403 | The access token presented in the request has a scope that does not match the scope specified in the verify access token policy. To learn about scope, see Working with OAuth2 scopes. | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | The access token sent from the client is invalid. | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
This error name is returned when the Note: It is recommended that you change existing fault rule
conditions to catch both the |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.InvalidRequest |
400 | This error name is used for multiple different kinds of errors, typically for missing
or incorrect parameters sent in the request. If <GenerateResponse> is
set to false, use fault variables (described below) to retrieve details about
the error, such as the fault name and cause. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | The authorization header does not have the word "Bearer", which is required. For
example: Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 |
The API proxy is not in the Product associated with the access token. Tips: Be sure that the product associated with the access token is configured correctly. For example, if you use wildcards in resource paths, be sure the wildcards are being used correctly. See Create API products for details. See also this Apigee Community post for more guidance on causes for this error. |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
This error name is returned when the |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | The policy must specify either an access token or an authorization code, but not both. | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | The <Tokens>/<Token> element requires you to specify the token
type (for example, refreshtoken). If the client passes the wrong type, this
error is thrown. |
ValidateToken InvalidateToken |
steps.oauth.v2.MissingParameter |
500 | The response type is token, but no grant types are specified. |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
The client specified a grant type that is unsupported by the policy (not listed in the <SupportedGrantTypes> element). Note: There is currently a bug where unsupported grant type errors are not thrown correctly. If an unsupported grant type error occurs, the proxy does not enter the Error Flow, as expected. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause |
|---|---|
InvalidValueForExpiresIn |
For the |
InvalidValueForRefreshTokenExpiresIn |
For the <RefreshTokenExpiresIn> element, valid values are positive
integers and -1. |
InvalidGrantType |
An invalid grant type is specified in the <SupportedGrantTypes>
element. See the policy reference for a list of valid types. |
ExpiresInNotApplicableForOperation |
Be sure that the operations specified in the <Operations> element support expiration. For example, the VerifyToken operation does not. |
RefreshTokenExpiresInNotApplicableForOperation |
Be sure that the operations specified in the <Operations> element support refresh token expiration. For example, the VerifyToken operation does not. |
GrantTypesNotApplicableForOperation |
Be sure that the grant types specified in <SupportedGrantTypes> are supported for the specified operation. |
OperationRequired |
You must specify an operation in this policy using the Note: If the |
InvalidOperation |
You must specify a valid operation in this policy using the
Note: If the |
TokenValueRequired |
You must specify a token <Token> value in the
<Tokens> element. |
Fault variables
These variables are set when this policy triggers an error at runtime.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "InvalidRequest" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GenerateAccesstoken.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
Note: For the VerifyAccessToken operation, the fault name includes this suffix: |
oauthV2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GenerateAccesstoken.cause = Required param : grant_type |
Example error response
These responses are sent back to the client if the <GenerateResponse>
element is true.
If <GenerateResponse> is true, the policy returns errors
in this format for operations that generate tokens and codes. For a complete list, see see
OAuth HTTP error
response reference.
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}If <GenerateResponse> is true, the policy returns errors
in this format for verify and validate operations. For a complete list, see see OAuth HTTP error
response reference.
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
Example fault rule
<FaultRule name=OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientResponse</Name>
<Condition>(fault.name = "invalid_client") OR (fault.name = "InvalidClientIdentifier")</Condition>
</Step>
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>خط مشی GetOAuthV2Info
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند. نام خطاهای نشان داده شده در زیر رشته هایی هستند که در صورت بروز خطا به متغیر fault.name اختصاص داده می شوند. برای جزئیات بیشتر به بخش متغیرهای خطا در زیر مراجعه کنید.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.oauth.v2.access_token_expired | 500 | رمز دسترسی ارسال شده به خط مشی منقضی شده است. |
steps.oauth.v2.authorization_code_expired | 500 | کد مجوز ارسال شده به خط مشی منقضی شده است. |
steps.oauth.v2.invalid_access_token | 500 | رمز دسترسی ارسال شده به خط مشی نامعتبر است. |
steps.oauth.v2.invalid_client-invalid_client_id | 500 | شناسه مشتری ارسال شده به خط مشی نامعتبر است. |
steps.oauth.v2.invalid_refresh_token | 500 | نشانه تازهسازی ارسال شده به خطمشی نامعتبر است. |
steps.oauth.v2.invalid_request-authorization_code_invalid | 500 | کد مجوز ارسال شده به خط مشی نامعتبر است. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | لطفاً این پست انجمن Apigee را برای اطلاعات در مورد عیب یابی این خطا ببینید. |
steps.oauth.v2.refresh_token_expired | 500 | رمز بهروزرسانی ارسال شده به خطمشی منقضی شده است. |
خطاهای استقرار
برای اطلاعات در مورد خطاهای استقرار به پیام گزارش شده در UI مراجعه کنید.
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "IPDeniedAccess" |
oauthV2. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.GetTokenInfo.failed = true |
oauthV2. policy_name .fault.name | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2. policy_name .fault.cause | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
نمونه پاسخ خطا
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
مثال قانون خطا
<FaultRule name="OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientIdResponse</Name>
</Step>
<Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>خط مشی SetOAuthV2Info
این بخش کدهای خطا و پیامهای خطایی که بازگردانده میشوند و متغیرهای خطایی که توسط Edge هنگام ایجاد خطا توسط این خطمشی تنظیم میشوند را شرح میدهد. اگر در حال توسعه قوانین خطا برای مدیریت خطاها هستید، دانستن این اطلاعات مهم است. برای کسب اطلاعات بیشتر، به آنچه باید در مورد خطاهای خطمشی و مدیریت خطاها بدانید، مراجعه کنید.
خطاهای زمان اجرا
این خطاها میتوانند هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.oauth.v2.access_token_expired | ۵۰۰ | توکن دسترسی ارسال شده به پالیسی منقضی شده است. |
steps.oauth.v2.invalid_access_token | ۵۰۰ | توکن دسترسی ارسال شده به خطمشی نامعتبر است. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | ۴۰۱ | برای اطلاعات بیشتر در مورد عیبیابی این خطا، لطفاً به این پست انجمن Apigee مراجعه کنید. |
خطاهای استقرار
برای اطلاعات مربوط به خطاهای استقرار، به پیام گزارش شده در رابط کاربری مراجعه کنید.
متغیرهای خطا
این متغیرها زمانی تنظیم میشوند که این خطمشی در زمان اجرا خطایی ایجاد کند.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای زمان اجرا در بالا ذکر شده است. نام خطا آخرین بخش کد خطا است. | fault.name = "invalid_access_token" |
oauthV2. policy_name .failed | policy_name نام مشخص شده توسط کاربر برای سیاستی است که خطا را ایجاد کرده است. | oauthV2.SetTokenInfo.failed = true |
oauthV2. policy_name .fault.name | policy_name نام مشخص شده توسط کاربر برای سیاستی است که خطا را ایجاد کرده است. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2. policy_name .fault.cause | policy_name نام مشخص شده توسط کاربر برای سیاستی است که خطا را ایجاد کرده است. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
پاسخ خطای نمونه
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}مثال قانون خطا
<FaultRule name=SetOAuthV2Info Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>خط مشی DeleteOAuthV2Info
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.oauth.v2.invalid_access_token | 401 | رمز دسترسی ارسال شده به خط مشی نامعتبر است. |
steps.oauth.v2.invalid_request-authorization_code_invalid | 401 | کد مجوز ارسال شده به خط مشی نامعتبر است. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | لطفاً این پست انجمن Apigee را برای اطلاعات در مورد عیب یابی این خطا ببینید. |
خطاهای استقرار
برای اطلاعات در مورد خطاهای استقرار به پیام گزارش شده در UI مراجعه کنید.
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name = "invalid_access_token" |
oauthV2. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.DeleteTokenInfo.failed = true |
oauthV2. policy_name .fault.name | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token |
oauthv2. policy_name .fault.cause | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | oauthV2.DeleteTokenInfo.cause = Invalid Access Token |
نمونه پاسخ خطا
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}مثال قانون خطا
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
</Step>
<Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>سیاست OAuthv1.0a
The OAuthV1 Policy type defines the following error codes.
For OAuth-related HTTP error codes, see OAuth HTTP error response reference.
| Error Code | Message |
|---|---|
AppKeyNotResolved |
Could not resolve the app key with variable {0} |
ConsumerKeyNotResolved |
Could not resolve the consumer key with variable {0} |
RequestTokenNotResolved |
Could not resolve the request token with the variable {0} |
AccessTokenNotResolved |
Could not resolve the access token with the variable {0} |
ResponseGenerationError |
Error while generating response : {0} |
UnableToDetermineOperation |
Unable to determine an operation for stepDefinition {0} |
UnableToResolveOAuthConfig |
Unable to resolve the OAuth configuration for {0} |
AtLeastOneParamRequired |
At least one of AccessToken, RequestToken or ConsumerKey must be specified in
stepDefinition {0} |
SpecifyValueOrRefReqToken |
Specify Request Token as value or ref in stepDefinition {0} |
SpecifyValueOrRefAccToken |
Specify Access Token as value or ref in stepDefinition {0} |
SpecifyValueOrRefConKey |
Specify Consumer Key as value or ref in stepDefinition {0} |
SpecifyValueOrRefAppKey |
Specify App Key as value or ref in stepDefinition {0} |
ExpiresInNotApplicableForOperation |
ExpiresIn element is not valid for operation {0} |
InvalidValueForExpiresIn |
Invalid value for ExpiresIn element for operation {0} |
FailedToFetchApiProduct |
Failed to fetch api product for key {0} |
InvalidTokenType |
Valid token types : {0}, Invalid toke type {1} in stepDefinition {2} |
TokenValueRequired |
Token value is required in stepDefinition {0} |
FailedToResolveRealm |
Failed to resolve realm {0} |
خط مشی GetOAuthV1Info
No error codes are specified for the Get OAuth v1.0a Info policy.
خط مشی DeleteOAuthV1Info
On success, the policy returns a 200 status.
On failure, the policy returns 404 and output similar to the following (depending on whether you are deleting an access token, request token, or verifier.):
HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 144 Connection: keep-alive {"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_request-access_token_invalid"}}}
خط مشی PythonScript
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.script.ScriptEvaluationFailed | 500 | خط مشی PythonScript می تواند چندین نوع مختلف از خطاهای ScriptExecutionFailed را ایجاد کند. انواع خطاهای رایج شامل NameError و ZeroDivisionError هستند. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
InvalidResourceUrlFormat | اگر قالب URL منبع مشخص شده در عنصر <ResourceURL> یا <IncludeURL> خط مشی PythonScript نامعتبر باشد، در این صورت استقرار پروکسی API با شکست مواجه می شود. | build |
InvalidResourceUrlReference | اگر عناصر <ResourceURL> یا <IncludeURL> به یک فایل PythonScript اشاره می کنند که وجود ندارد، در این صورت استقرار پروکسی API با شکست مواجه می شود. فایل منبع ارجاع شده باید در سطح پروکسی API، محیط یا سطح سازمان باشد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را در زمان اجرا ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "ScriptExecutionFailed" |
pythonscript. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | pythonscript.PythonScript-1.failed = true |
نمونه پاسخ خطا
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"", "detail": { "errorcode": "steps.script.ScriptExecutionFailed" } } }
مثال قانون خطا
<FaultRule name="PythonScript Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition> </Step> <Condition>(pythonscript.PythonScript-1.failed = true) </Condition> </FaultRule>
سیاست سهمیه بندی
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | Occurs if the <Interval> element is not defined within the Quota policy. This element
is mandatory and used to specify the interval of time applicable to the quota. The time interval
can be minutes, hours, days, weeks, or months as defined with the <TimeUnit> element. |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | Occurs if the <TimeUnit> element is not defined within the Quota policy. This element
is mandatory and used to specify the unit of time applicable to the quota. The time interval
can be in minutes, hours, days, weeks, or months. |
build |
policies.ratelimit.InvalidMessageWeight |
500 | Occurs if the value of the <MessageWeight> element specified through a flow variable
is invalid (a non-integer value). |
build |
policies.ratelimit.QuotaViolation |
500 | The quota limit was exceeded. | N/A |
Deployment errors
| Error name | Cause | Fix |
|---|---|---|
InvalidQuotaInterval |
If the quota interval specified in the <Interval> element is not
an integer, then the deployment of the API proxy fails. For example, if the quota interval
specified is 0.1 in the <Interval> element, then the deployment of the
API proxy fails.
|
build |
InvalidQuotaTimeUnit |
If the time unit specified in the <TimeUnit> element is unsupported,
then the deployment of the API proxy fails. The supported time units are minute,
hour, day, week, and month.
|
build |
InvalidQuotaType |
If the type of the quota specified by the type attribute in the <Quota>
element is invalid, then the deployment of the API proxy fails. The
supported quota types are default, calendar, flexi, and rollingwindow.
|
build |
InvalidStartTime |
If the format of the time specified in the <StartTime> element is
invalid, then the deployment of the API proxy fails. The valid format is yyyy-MM-dd HH:mm:ss,
which is the ISO 8601 date and time format. For
example, if the time specified in the <StartTime> element is
7-16-2017 12:00:00 then the deployment of the API proxy fails.
|
build |
StartTimeNotSupported |
If the <StartTime> element is specified whose quota type is not
calendar type, then the deployment of the API proxy fails. The <StartTime> element is
supported only for the calendar quota type. For example, if the type attribute is set
to flexi or rolling window in the <Quota> element, then the
deployment of the API proxy fails.
|
build |
InvalidTimeUnitForDistributedQuota |
If the <Distributed> element is set to true and the <TimeUnit> element is set to
second then the deployment of the API proxy fails. The timeunit second is invalid for
a distributed quota. |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
If the value specified for the <SyncIntervalInSeconds> element within the
<AsynchronousConfiguration> element in a Quota policy is less than zero, then the
deployment of the API proxy fails. |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
If the value of the <AsynchronousConfiguration> element is set to true in a Quota policy, which also
has asynchronous configuration defined using the <AsynchronousConfiguration> element, then
the deployment of the API proxy fails. |
build |
Fault variables
These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "QuotaViolation" |
ratelimit.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | ratelimit.QT-QuotaPolicy.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
Example fault rule
<FaultRules>
<FaultRule name="Quota Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "QuotaViolation") </Condition>
</Step>
<Condition>ratelimit.Quota-1.failed=true</Condition>
</FaultRule>
</FaultRules>سیاست ResetQuota
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | ثابت |
|---|---|---|---|
policies.resetquota.InvalidRLPolicy | 500 | خط مشی Quota مشخص شده در عنصر <Quota> خط مشی Reset Quota در پراکسی API تعریف نشده است و بنابراین در طول جریان در دسترس نیست. عنصر <Quota> اجباری است و خط مشی سهمیه هدف را مشخص می کند که شمارنده آن باید از طریق خط مشی Reset Quota به روز شود. | build |
policies.resetquota.FailedToResolveAllowCountRef | N/A | ارجاع به متغیر حاوی تعداد مجاز در عنصر <Allow> سیاست را نمی توان به مقدار تعیین کرد. این عنصر اجباری است و میزان کاهش سهمیه شمار را مشخص می کند. | build |
policies.resetquota.FailedToResolveRLPolicy | 500 | متغیر ارجاع شده توسط ویژگی ref در عنصر <Quota> قابل حل نیست. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidCount | اگر مقدار شمارش مشخص شده در عنصر <Allow> سیاست Reset Quota یک عدد صحیح نباشد، استقرار پراکسی API با شکست مواجه میشود. | build |
خط مشی RaiseFault
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.raisefault.RaiseFault | 500 | رشته خطا را ببینید. |
خطاهای استقرار
هیچ کدام
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name = "RaiseFault" |
raisefault. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | raisefault.RF-ThrowError.failed = true |
نمونه پاسخ خطا
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
خط مشی RegularExpressionProtection
این بخش کدهای خطا و پیامهای بازگردانده شده و متغیرهای خطای تنظیم شده توسط Edge را هنگامی که این خطمشی خطایی ایجاد میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. اگر میخواهید خطا را ثبت کنید و خطای سفارشی خود را مطرح کنید، ویژگی continueOnError="true" را روی عنصر ریشه سیاست تنظیم کنید. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهایی که از خطمشیهای Edge برگردانده میشوند از یک قالب ثابت پیروی میکنند که در مرجع کد خطا توضیح داده شده است.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | پیام |
|---|---|
| اجرا ناموفق بود | اجرای RegularExpressionProtection StepDefinition {0} انجام نشد. دلیل: {1} |
| Instantiation Failed | نمونه سازی RegularExpressionProtection StepDefinition {0} ناموفق بود |
| NonMessageVariable | متغیر {0} به پیام تبدیل نمی شود |
| SourceMessageNotAvailable | پیام {0} برای RegularExpressionProtection StepDefinition در دسترس نیست {1} |
| تهدید شناسایی شده | تهدید عبارت منظم در {0} شناسایی شد: regex: {1} ورودی: {2} |
| VariableResolution Failed | حل کردن متغیر {0} ناموفق بود |
خطاهای استقرار
| کد خطا | پیام | ثابت |
|---|---|---|
| CannotBeConvertedToNodeset | RegularExpressionProtection {0}: نتیجه xpath {1} را نمی توان به nodeset تبدیل کرد. زمینه {2} | build |
| DuplicatePrefix | RegularExpressionProtection {0}: پیشوند تکراری {1} | build |
| EmptyJSONPathExpression | RegularExpressionProtection {0}: عبارت JSONPath خالی است | build |
| EmptyXPathExpression | RegularExpressionProtection {0}: عبارت XPath خالی است | build |
| InvalidRegularExpression | RegularExpressionProtection {0}: عبارت منظم نامعتبر {1}، متن {2} | build |
| JSONPathCompilation ناموفق بود | RegularExpressionProtection {0}: jsonpath {1} کامپایل نشد. زمینه {2} | build |
| NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: پیشوند غیر خالی {1} را نمی توان به uri خالی نگاشت | build |
| NoPatternsToEnforce | RegularExpressionProtection {0}: هیچ الگوی برای اعمال در {1} وجود ندارد | build |
| NothingToEnforce | RegularExpressionProtection {0}: حداقل یکی از URIPath، QueryParam، Header، FormParam، XMLPayload، JSONPayload اجباری است | build |
| XPathCompilation Failed | RegularExpressionProtection {0}: xpath {1} کامپایل نشد. زمینه {2} | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که این خط مشی خطایی را ایجاد کند. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | جایی که | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول بالا آمده است. | fault.name Matches "ThreatDetected" |
regularexpressionprotection. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |
خط مشی SOAPMessageValidation
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | ثابت |
|---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable | 500 | این خطا در صورتی رخ می دهد که متغیری که در عنصر
| build |
steps.messagevalidation.NonMessageVariable | 500 | اگر عنصر متغیرهای نوع پیام، کل درخواستها و پاسخهای HTTP را نشان میدهند. متغیرهای جریان لبه داخلی | build |
steps.messagevalidation.Failed | 500 | این خطا در صورتی رخ می دهد که خط مشی SOAPMessageValidation نتواند بار پیام ورودی را در برابر طرح XSD یا تعریف WSDL تأیید کند. همچنین اگر JSON یا XML نادرست در پیام بارگذاری وجود داشته باشد، رخ می دهد. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidResourceType | عنصر <ResourceURL> در خط مشی SOAPMessageValidation روی یک نوع منبع تنظیم شده است که توسط این خط مشی پشتیبانی نمی شود. | build |
ResourceCompileFailed | اسکریپت منبع ارجاع شده در عنصر <ResourceURL> خط مشی SOAPMessageValidation حاوی خطایی است که از کامپایل آن جلوگیری می کند. | build |
RootElementNameUnspecified | عنصر <Element> در خط مشی SOAPMessageValidation حاوی نام عنصر ریشه نیست. | build |
InvalidRootElementName | عنصر <Element> در خط مشی SOAPMessageValidation حاوی یک نام عنصر ریشه است که برای نامگذاری عنصر معتبر به قوانین XML پایبند نیست. | build |
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | ثابت |
|---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable | 500 | این خطا در صورتی رخ می دهد که متغیری که در عنصر
| build |
steps.messagevalidation.NonMessageVariable | 500 | اگر عنصر متغیرهای نوع پیام، کل درخواستها و پاسخهای HTTP را نشان میدهند. متغیرهای جریان لبه داخلی | build |
steps.messagevalidation.Failed | 500 | این خطا در صورتی رخ می دهد که خط مشی SOAPMessageValidation نتواند بار پیام ورودی را در برابر طرح XSD یا تعریف WSDL تأیید کند. همچنین اگر JSON یا XML نادرست در پیام بارگذاری وجود داشته باشد، رخ می دهد. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | ثابت |
|---|---|---|
InvalidResourceType | عنصر <ResourceURL> در خط مشی SOAPMessageValidation روی یک نوع منبع تنظیم شده است که توسط این خط مشی پشتیبانی نمی شود. | build |
ResourceCompileFailed | اسکریپت منبع ارجاع شده در عنصر <ResourceURL> خط مشی SOAPMessageValidation حاوی خطایی است که از کامپایل آن جلوگیری می کند. | build |
RootElementNameUnspecified | عنصر <Element> در خط مشی SOAPMessageValidation حاوی نام عنصر ریشه نیست. | build |
InvalidRootElementName | عنصر <Element> در خط مشی SOAPMessageValidation حاوی یک نام عنصر ریشه است که برای نامگذاری عنصر معتبر به قوانین XML پایبند نیست. | build |
سیاست اظهارنامه SAMLA
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
SourceNotConfigured | یک یا چند عنصر زیر از خطمشی اعتبارسنجی SAML Assertion تعریف نشده یا خالی نیست: <Source> ، <XPath> ، <Namespaces> ، <Namespace> . | build |
TrustStoreNotConfigured | اگر عنصر <TrustStore> خالی باشد یا در خطمشی ValidateSAMLAssertion مشخص نشده باشد، استقرار پراکسی API با شکست مواجه میشود. یک فروشگاه معتبر معتبر مورد نیاز است. | build |
NullKeyStoreAlias | اگر عنصر فرزند <Alias> خالی باشد یا در عنصر <Keystore> خطمشی Generate SAML Assertion مشخص نشده باشد، در این صورت استقرار پراکسی API با شکست مواجه میشود. یک نام مستعار Keystore معتبر مورد نیاز است. | build |
NullKeyStore | اگر عنصر فرزند <Name> خالی باشد یا در عنصر <Keystore> خطمشی GenerateSAMLAssertion مشخص نشده باشد، در آن صورت استقرار پراکسی API با شکست مواجه میشود. یک نام Keystore معتبر مورد نیاز است. | build |
NullIssuer | اگر عنصر <Issuer> خالی باشد یا در خطمشی Generate SAML Assertion مشخص نشده باشد، استقرار پراکسی API با شکست مواجه میشود. یک مقدار معتبر <Issuer> مورد نیاز است. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است . نام خطا آخرین قسمت کد خطا است. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed | برای تأیید پیکربندی خط مشی ادعای SAML، پیشوند خطا ValidateSAMLAssertion است. | GenerateSAMLAssertion.failed = true |
نمونه پاسخ خطا
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
مثال قانون خطا
<FaultRules>
<FaultRule name="invalid_saml_rule">
<Step>
<Name>invalid-saml</Name>
</Step>
<Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
</FaultRule>
</FaultRules>خط مشی ServiceCallout
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.servicecallout.ExecutionFailed | 500 | این خطا زمانی رخ می دهد که:
| build |
steps.servicecallout.RequestVariableNotMessageType | 500 | متغیر Request مشخص شده در خط مشی از نوع Message نیست. برای مثال، اگر رشته یا نوع دیگری غیر پیام باشد، این خطا را خواهید دید. | build |
steps.servicecallout.RequestVariableNotRequestMessageType | 500 | متغیر Request مشخص شده در خط مشی از نوع Request Message نیست. برای مثال، اگر از نوع Response باشد، این خطا را خواهید دید. | build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
URLMissing | عنصر <URL> داخل <HTTPTargetConnection> وجود ندارد یا خالی است. | build |
ConnectionInfoMissing | اگر این خطمشی عنصر <HTTPTargetConnection> یا <LocalTargetConnection> نداشته باشد، این خطا رخ میدهد. | build |
InvalidTimeoutValue | اگر مقدار <Timeout> منفی یا صفر باشد این خطا رخ می دهد. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name = "RequestVariableNotMessageType" |
servicecallout. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | servicecallout.SC-GetUserData.failed = true |
نمونه پاسخ خطا
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
مثال قانون خطا
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType">
<Step>
<Name>AM-RequestVariableNotMessageType</Name>
</Step>
<Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
</FaultRule>سیاست SpikeArrest
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate | 500 | این خطا در صورتی رخ می دهد که ارجاع به متغیر حاوی تنظیم نرخ در عنصر <Rate> به مقداری در خط مشی Spike Arrest قابل حل نباشد. این عنصر اجباری است و برای تعیین نرخ توقف سنبله به صورت int pm یا int ps استفاده می شود. | build |
policies.ratelimit.InvalidMessageWeight | 500 | این خطا در صورتی رخ می دهد که مقدار تعیین شده برای عنصر <MessageWeight> از طریق متغیر جریان نامعتبر باشد (یک مقدار غیر صحیح). | build |
policies.ratelimit.SpikeArrestViolation | 429 | از حد مجاز فراتر رفت. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
InvalidAllowedRate | اگر نرخ توقف اسپک مشخص شده در عنصر <Rate> سیاست دستگیری Spike یک عدد صحیح نباشد یا اگر نرخ پسوند ps یا pm نداشته باشد، در آن صورت استقرار پراکسی API با شکست مواجه میشود. | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "SpikeArrestViolation" |
ratelimit. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | ratelimit.SA-SpikeArrestPolicy.failed = true |
نمونه پاسخ خطا
در زیر نمونه ای از پاسخ خطا نشان داده شده است:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
مثال قانون خطا
در زیر مثالی از قانون خطا برای رسیدگی به خطای SpikeArrestViolation نشان داده شده است:
<FaultRules>
<FaultRule name="Spike Arrest Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "SpikeArrestViolation") </Condition>
</Step>
<Condition>ratelimit.Spike-Arrest-1.failed=true</Condition>
</FaultRule>
</FaultRules>سیاست جمع آوری آمار
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
None.
Deployment errors
| Error name | Cause | Fix |
|---|---|---|
UnsupportedDatatype |
If the type of the variable specified by the ref attribute in the <Statistic> element
of the Statistics Collector policy is unsupported, then the deployment of the API proxy
fails. The supported data types are string, integer,
float, long, double, and boolean. |
build |
InvalidName |
If the name used to reference the data collected for the specified variable defined
within the <Statistic> element of the Statistics Collector policy conflicts with a
system-defined variable, then the deployment of the API proxy fails. Some of the known
system-defined variables are organization and environment. |
build |
DatatypeMissing |
If the type of the variable specified by the ref attribute in the <Statistic> element
of the Statistics Collector policy is missing, then the deployment of the API proxy fails. |
build |
Fault variables
None.
خط مشی VerifyAPIKey
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause |
|---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | The Company associated with the Developer App that has the API key you are using has an inactive status. When a Company's status is set to inactive, you cannot access the developers or apps associated with that Company. An org admin can change a Company's status using the management API. See Set the Status of a Company. |
keymanagement.service.DeveloperStatusNotActive |
401 |
The developer who created the Developer App that has the API key you are using has an inactive status. When an App Developer's status is set to inactive, any Developer Apps created by that developer are deactivated. An admin user with appropriate permissions (such as Organization Administrator) can change a developer's status in the following ways:
|
keymanagement.service.invalid_client-app_not_approved |
401 | The Developer App associated with the API key is revoked. A revoked app cannot access any API products and cannot invoke any API managed by Apigee Edge. An org admin can change the status of a Developer App using the management API. See Approve or Revoke Developer App. |
oauth.v2.FailedToResolveAPIKey |
401 | The policy expects to find the API key in a variable that is specified in the policy's <APIKey> element. This error arises when the expected variable does not exist (it cannot be resolved). |
oauth.v2.InvalidApiKey |
401 | An API key was received by Edge, but it is invalid. When Edge looks up the key in its database, it must exactly match the on that was sent in the request. If the API worked previously, make sure the key was not regenerated. If the key was regenerated, you will see this error if you try to use the old key. For details, see Register apps and manage API keys. |
oauth.v2.InvalidApiKeyForGivenResource |
401 | An API key was received by Edge, and it is valid; however, it does not match an approved key in the Developer App associated with your API proxy through a Product. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause |
|---|---|
SpecifyValueOrRefApiKey |
The <APIKey> element does not have a value or key specified. |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.VK-VerifyAPIKey.failed = true |
Example error responses
{
"fault":{
"faultstring":"Invalid ApiKey",
"detail":{
"errorcode":"oauth.v2.InvalidApiKey"
}
}
}{
"fault":{
"detail":{
"errorcode":"keymanagement.service.DeveloperStatusNotActive"
},
"faultstring":"Developer Status is not Active"
}
}Example fault rule
<FaultRule name="FailedToResolveAPIKey">
<Step>
<Name>AM-FailedToResolveAPIKey</Name>
</Step>
<Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>بررسی سیاست JWS
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | زمانی رخ می دهد |
|---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration | 401 | زمانی رخ می دهد که خط مشی تأیید چندین الگوریتم داشته باشد |
steps.jws.AlgorithmMismatch | 401 | الگوریتم مشخص شده در سربرگ توسط خط مشی Generate با الگوریتم مورد انتظار در خط مشی تأیید مطابقت نداشت. الگوریتم های مشخص شده باید مطابقت داشته باشند. |
steps.jws.ContentIsNotDetached | 401 | <DetachedContent> زمانی مشخص می شود که JWS حاوی محتویات جدا شده نباشد. |
steps.jws.FailedToDecode | 401 | این خط مشی قادر به رمزگشایی JWS نبود. JWS احتمالاً خراب است. |
steps.jws.InsufficientKeyLength | 401 | برای یک کلید کمتر از 32 بایت برای الگوریتم HS256 |
steps.jws.InvalidClaim | 401 | برای ادعای مفقود یا عدم تطابق ادعا، یا عدم تطابق سرصفحه یا سرصفحه. |
steps.jws.InvalidCurve | 401 | منحنی مشخص شده توسط کلید برای الگوریتم منحنی بیضی معتبر نیست. |
steps.jws.InvalidJsonFormat | 401 | JSON نامعتبر در هدر JWS یافت شد. |
steps.jws.InvalidJws | 401 | این خطا زمانی رخ می دهد که تأیید امضای JWS ناموفق باشد. |
steps.jws.InvalidPayload | 401 | محموله JWS نامعتبر است. |
steps.jws.InvalidSignature | 401 | <DetachedContent> حذف شده است و JWS دارای یک بار محتوای جدا شده است. |
steps.jws.KeyIdMissing | 401 | خطمشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده میکند، اما JWS امضاشده دارای ویژگی kid در سرصفحه نیست. |
steps.jws.KeyParsingFailed | 401 | کلید عمومی از اطلاعات کلید داده شده قابل تجزیه نیست. |
steps.jws.MissingPayload | 401 | محموله JWS وجود ندارد. |
steps.jws.NoAlgorithmFoundInHeader | 401 | زمانی رخ می دهد که JWS سربرگ الگوریتم را حذف کند. |
steps.jws.NoMatchingPublicKey | 401 | خطمشی تأیید از یک JWKS به عنوان منبع کلیدهای عمومی استفاده میکند، اما kid در JWS امضاشده در JWKS فهرست نشده است. |
steps.jws.UnhandledCriticalHeader | 401 | سرصفحه ای که توسط خط مشی Verify JWS در هدر crit یافت می شود در KnownHeaders فهرست نشده است. |
steps.jws.UnknownException | 401 | یک استثنا ناشناخته رخ داد. |
steps.jws.WrongKeyType | 401 | نوع کلید اشتباه مشخص شده است. به عنوان مثال، اگر یک کلید RSA برای یک الگوریتم منحنی بیضی یا یک کلید منحنی برای یک الگوریتم RSA مشخص کنید. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | زمانی رخ می دهد |
|---|---|
InvalidAlgorithm | تنها مقادیر معتبر عبارتند از: RS256، RS384، RS512، PS256، PS384، PS512، ES256، ES384، ES512، HS256، HS384، HS512. |
| سایر خطاهای احتمالی استقرار |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "TokenExpired" |
JWS.failed | همه خط مشی های JWS در صورت خرابی یک متغیر را تنظیم می کنند. | jws.JWS-Policy.failed = true |
نمونه پاسخ خطا
برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.
مثال قانون خطا
<FaultRules>
<FaultRule name="JWS Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWS.failed=true</Condition>
</FaultRule>
</FaultRules>بررسی سیاست JWT
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Occurs when |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Occurs when the verification policy has multiple algorithms. |
steps.jwt.AlgorithmMismatch |
401 | The algorithm specified in the Generate policy did not match the one expected in the Verify policy. The algorithms specified must match. |
steps.jwt.FailedToDecode |
401 | The policy was unable to decode the JWT. The JWT is possibly corrupted. |
steps.jwt.GenerationFailed |
401 | The policy was unable to generate the JWT. |
steps.jwt.InsufficientKeyLength |
401 | For a key less than 32 bytes for the HS256 algorithm, less than 48 bytes for the HS386 algortithm, and less than 64 bytes for the HS512 algorithm. |
steps.jwt.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jwt.InvalidCurve |
401 | The curve specified by the key is not valid for the Elliptic Curve algorithm. |
steps.jwt.InvalidJsonFormat |
401 | Invalid JSON found in the header or payload. |
steps.jwt.InvalidToken |
401 | This error occurs when the JWT signature verification fails. |
steps.jwt.JwtAudienceMismatch |
401 | The audience claim failed on token verification. |
steps.jwt.JwtIssuerMismatch |
401 | The issuer claim failed on token verification. |
steps.jwt.JwtSubjectMismatch |
401 | The subject claim failed on token verification. |
steps.jwt.KeyIdMissing |
401 | The Verify policy uses a JWKS as a source for public keys, but the signed JWT does not
include a kid property in the header. |
steps.jwt.KeyParsingFailed |
401 | The public key could not be parsed from the given key information. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Occurs when the JWT contains no algorithm header. |
steps.jwt.NoMatchingPublicKey |
401 | The Verify policy uses a JWKS as a source for public keys, but the kid
in the signed JWT is not listed in the JWKS. |
steps.jwt.SigningFailed |
401 | In GenerateJWT, for a key less than the minimum size for the HS384 or HS512 algorithms |
steps.jwt.TokenExpired |
401 | The policy attempts to verify an expired token. |
steps.jwt.TokenNotYetValid |
401 | The token is not yet valid. |
steps.jwt.UnhandledCriticalHeader |
401 | A header found by the Verify JWT policy in the crit header is not
listed in KnownHeaders. |
steps.jwt.UnknownException |
401 | An unknown exception occurred. |
steps.jwt.WrongKeyType |
401 | Wrong type of key specified. For example, if you specify an RSA key for an Elliptic Curve algorithm, or a curve key for an RSA algorithm. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidNameForAdditionalClaim |
The deployment will fail if the claim used in the child element <Claim>
of the <AdditionalClaims> element is one of the following registered names:
kid, iss, sub, aud, iat,
exp, nbf, or jti.
|
build |
InvalidTypeForAdditionalClaim |
If the claim used in the child element <Claim>
of the <AdditionalClaims> element is not of type string, number,
boolean, or map, the deployment will fail.
|
build |
MissingNameForAdditionalClaim |
If the name of the claim is not specified in the child element <Claim>
of the <AdditionalClaims> element, the deployment will fail.
|
build |
InvalidNameForAdditionalHeader |
This error ccurs when the name of the claim used in the child element <Claim>
of the <AdditionalClaims> element is either alg or typ.
|
build |
InvalidTypeForAdditionalHeader |
If the type of claim used in the child element <Claim>
of the <AdditionalClaims> element is not of type string, number,
boolean, or map, the deployment will fail.
|
build |
InvalidValueOfArrayAttribute |
This error occurs when the value of the array attribute in the child element <Claim>
of the <AdditionalClaims> element is not set to true or false.
|
build |
InvalidValueForElement |
If the value specified in the <Algorithm> element is not a supported value,
the deployment will fail.
|
build |
MissingConfigurationElement |
This error will occur if the <PrivateKey> element is not used with
RSA family algorithms or the <SecretKey> element is not used with HS Family
algorithms.
|
build |
InvalidKeyConfiguration |
If the child element <Value> is not defined in the <PrivateKey>
or <SecretKey> elements, the deployment will fail.
|
build |
EmptyElementForKeyConfiguration |
If the ref attribute of the child element <Value> of the <PrivateKey>
or <SecretKey> elements is empty or unspecified, the deployment will fail.
|
build |
InvalidConfigurationForVerify |
This error occurs if the <Id> element is defined within the
<SecretKey> element.
|
build |
InvalidEmptyElement |
This error occurs if the <Source> element of the Verify JWT policy
is empty. If present, it must be defined with an Edge flow variable name.
|
build |
InvalidPublicKeyValue |
If the value used in the child element <JWKS> of the <PublicKey> element
does not use a valid format as specified in RFC 7517,
the deployment will fail.
|
build |
InvalidConfigurationForActionAndAlgorithm |
If the <PrivateKey> element is used with HS Family algorithms or
the <SecretKey> element is used with RSA Family algorithms, the
deployment will fail.
|
build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "TokenExpired" |
JWT.failed | همه خط مشی های JWT متغیرهای یکسانی را در صورت خرابی تنظیم می کنند. | JWT.failed = true |
نمونه پاسخ خطا
برای رسیدگی به خطا، بهترین روش به دام انداختن قسمت errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند.
مثال قانون خطا
<FaultRules>
<FaultRule name="JWT Policy Errors">
<Step>
<Name>JavaScript-1</Name>
<Condition>(fault.name Matches "TokenExpired")</Condition>
</Step>
<Condition>JWT.failed=true</Condition>
</FaultRule>
</FaultRules>
خط مشی XMLThreatProtection
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed | 500 | خط مشی XMLThreatProtection می تواند انواع مختلفی از خطاهای ExecutionFailed را ایجاد کند. بیشتر این خطاها زمانی رخ میدهند که از یک آستانه مشخص در خطمشی تجاوز کند. این نوع خطاها عبارتند از: طول نام عنصر ، تعداد فرزند ، عمق گره ، تعداد ویژگی ، طول نام ویژگی و بسیاری دیگر. می توانید لیست کامل را در مبحث عیب یابی خطای زمان اجرا خط مشی XMLThreatProtection مشاهده کنید. | build |
steps.xmlthreatprotection.InvalidXMLPayload | 500 | اگر بار پیام ورودی مشخص شده توسط عنصر <Source> خط مشی XMLThreatProtection یک سند XML معتبر نباشد، این خطا رخ می دهد. | build |
steps.xmlthreatprotection.SourceUnavailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
| build |
steps.xmlthreatprotection.NonMessageVariable | 500 | این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست. | build |
یادداشت ها:
- نام خطا ExecutionFailed نام خطای پیشفرض است و صرفنظر از نوع خطای شناساییشده، برگردانده میشود. با این حال، این پیش فرض را می توان با تنظیم یک ویژگی در سطح سازمان تغییر داد. هنگامی که این ویژگی تنظیم شود، نام خطا نشان دهنده خطای واقعی است. به عنوان مثال، "TextExceeded" یا "AttrValueExceeded". برای جزئیات به یادداشت های استفاده مراجعه کنید.
- وضعیت 500 HTTP پیش فرض است. با این حال، وضعیت HTTP را می توان برای خطاهای جریان درخواست با تنظیم یک ویژگی در سطح سازمان به 400 تغییر داد. برای جزئیات به یادداشت های استفاده مراجعه کنید.
خطاهای استقرار
هیچ کدام.
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name Matches "SourceUnavailable" |
xmlattack. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | xmlattack.XPT-SecureRequest.failed = true |
نمونه پاسخ خطا
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
مثال قانون خطا
<FaultRule name="XML Threat Protection Policy Faults">
<Step>
<Name>AM-CustomErrorResponse</Name>
<Condition>(fault.name Matches "ExecutionFailed") </Condition>
</Step>
<Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition>
</FaultRule>خط مشی XMLtoJSON
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.xmltojson.ExecutionFailed | 500 | این خطا زمانی رخ می دهد که بار ورودی (XML) خالی باشد یا XML ورودی نامعتبر یا بد شکل باشد. | build |
steps.xmltojson.InCompatibleType | 500 | این خطا در صورتی رخ می دهد که نوع متغیر تعریف شده در عنصر <Source> و عنصر <OutputVariable> یکسان نباشد. اجباری است که نوع متغیرهای موجود در عنصر <Source> و عنصر <OutputVariable> مطابقت داشته باشد. | build |
steps.xmltojson.InvalidSourceType | 500 | این خطا در صورتی رخ می دهد که نوع متغیر مورد استفاده برای تعریف عنصر <Source> نامعتبر باشد. انواع معتبر متغیر پیام و رشته هستند. | build |
steps.xmltojson.OutputVariableIsNotAvailable | 500 | اگر متغیر مشخص شده در عنصر <Source> خط مشی XML به JSON از نوع string باشد و عنصر <OutputVariable> تعریف نشده باشد، این خطا رخ می دهد. عنصر <OutputVariable> زمانی اجباری است که متغیر تعریف شده در عنصر <Source> از نوع رشته باشد. | build |
steps.xmltojson.SourceUnavailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> خط مشی XML به JSON یکی از این موارد باشد:
| build |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پروکسی حاوی این خط مشی را مستقر می کنید.
| نام خطا | علت | رفع کنید |
|---|---|---|
EitherOptionOrFormat | اگر یکی از عناصر <Options> یا <Format> در خطمشی XML به JSON اعلان نشده باشد، استقرار پراکسی API با شکست مواجه میشود. | build |
UnknownFormat | اگر عنصر <Format> در خط مشی XML به JSON دارای یک قالب ناشناخته تعریف شده باشد، در آن صورت استقرار پروکسی API با شکست مواجه می شود. فرمت های از پیش تعریف شده عبارتند از: xml.com ، yahoo ، google ، و badgerFish . | build |
متغیرهای خطا
این متغیرها زمانی تنظیم می شوند که یک خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، به آنچه باید در مورد خطاهای خط مشی بدانید مراجعه کنید.
| متغیرها | کجا | مثال |
|---|---|---|
fault.name=" fault_name " | fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. | fault.name = "SourceUnavailable" |
xmltojson. policy_name .failed | policy_name نام سیاستی است که توسط کاربر مشخص شده است که خطا را ایجاد کرده است. | xmltojson.XMLtoJSON-1.failed = true |
نمونه پاسخ خطا
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
مثال قانون خطا
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="XML to JSON Faults"> <Step> <Name>AM-SourceUnavailableMessage</Name> <Condition>(fault.name Matches "SourceUnavailable") </Condition> </Step> <Step> <Name>AM-BadXML</Name> <Condition>(fault.name = "ExecutionFailed")</Condition> </Step> <Condition>(xmltojson.XMLtoJSON-1.failed = true) </Condition> </FaultRule>
خط مشی XSLTransform
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
This error occurs if the message or string variable specified in the <Source> element of the
XSL Transform policy is either out of scope (not available in the specific flow where the
policy is being executed) or can't be resolved (is not defined).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
XSLEmptyResourceUrl |
If the <ResourceURL> element in the XSL Transform policy is empty, then the
deployment of the API proxy fails. |
build |
XSLInvalidResourceType |
If the resource type specified in the <ResourceURL> element of the XSL Transform
policy is not of type xsl, then the deployment of the API proxy fails. |
build |