Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Правила AccessControl
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина | Исправить |
|---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | IP-адрес клиента или IP-адрес, переданный в запросе к API, соответствует IP-адресу, указанному в элементе <SourceAddress> внутри элемента <MatchRule> правила управления доступом, а атрибут action элемента <MatchRule> имеет значение DENY. |
build |
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о переменных, связанных с ошибками правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name – заданное пользователем название правила, которое вызвало ошибку. | acl.AC-AllowAccess.failed = true |
Пример ответа об ошибке
{
"fault":{
"faultstring":"Access Denied for client ip : 52.211.243.3"
"detail":{
"errorcode":"accesscontrol.IPDeniedAccess"
}
}
}Пример правила обработки ошибок
<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] | Н/Д | Используемый тип объекта должен быть одним из поддерживаемых типов . |
Правило AssignMessage
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина | Исправить |
|---|---|---|---|
steps.assignmessage.SetVariableFailed |
500 | Правило не смогло задать переменную. Название неразрешенной переменной можно найти в строке ошибки. | |
steps.assignmessage.VariableOfNonMsgType |
500 |
Эта ошибка возникает, если атрибуту Переменные типа сообщения представляют собой полные HTTP-запросы и ответы. Встроенные переменные потока Edge |
build |
steps.assignmessage.UnresolvedVariable |
500 |
Эта ошибка возникает, если переменная, указанная в правиле "Назначить сообщение",
|
build |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidIndex |
Если индекс, указанный в элементах <Copy> и/или <Remove> правила "Назначить сообщение", равен 0 или отрицательному числу, развертывание прокси API завершится неудачно.
|
build |
InvalidVariableName |
Если дочерний элемент <Name> пуст или не указан в элементе <AssignVariable>, развертывание прокси-сервера API завершится неудачно, поскольку нет действительного имени переменной, которой можно присвоить значение. Укажите допустимое имя переменной.
|
build |
InvalidPayload |
Недопустимая полезная нагрузка, указанная в правиле. |
Переменные ошибок
Эти переменные задаются, когда правило вызывает ошибку во время выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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>
Правила BasicAuthentication
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина | Исправить |
|---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource |
500 | При декодировании, если входящая строка в кодировке Base64 не содержит допустимого значения или заголовок имеет неправильный формат (например, не начинается с "Basic"). | build |
steps.basicauthentication.UnresolvedVariable |
500 | Не указаны необходимые исходные переменные для декодирования или кодирования. Эта ошибка может возникнуть, только если для параметра IgnoreUnresolvedVariables задано значение false. |
build |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Когда возникает | Исправить |
|---|---|---|
UserNameRequired |
Для именованной операции должен быть указан элемент <User>. |
build |
PasswordRequired |
Для именованной операции должен быть указан элемент <Password>. |
build |
AssignToRequired |
Для именованной операции должен быть указан элемент <AssignTo>. |
build |
SourceRequired |
Для именованной операции должен быть указан элемент <Source>. |
build |
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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 |
Превышено ограничение на количество одновременных подключений. Ограничение на количество подключений : {0} Примечание. Код ошибки, показанный слева, правильный, хотя в нем есть опечатка ("limt"). При создании правил обработки ошибок обязательно используйте код в том виде, в котором он показан здесь. |
Ошибки развертывания
| Название ошибки | Когда возникает |
|---|---|
InvalidCountValue |
Указано недопустимое значение для параметра ConcurrentRatelimit. |
ConcurrentRatelimitStepAttachment\ |
Прикрепление правила ограничения скорости {0} к путям запроса/ответа/ошибки прокси-сервера запрещено. Это правило должно быть размещено в целевой конечной точке. |
ConcurrentRatelimitStepAttachment\ |
Прикрепленный файл с правилами ограничения скорости {0} отсутствует в целевом запросе/ответе/ошибке пути. Это правило должно быть размещено в Target Request Preflow, Target Response Postflow и DefaultFaultRule. |
InvalidTTLForMessageTimeOut |
Для тайм-аута сообщения указано недопустимое значение TTL. Это должно быть положительное целое число. |
Переменные ошибок
Эти переменные задаются, когда правило вызывает ошибку. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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 | В заголовке JWS найден недопустимый JSON. |
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 — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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 — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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 | Эта ошибка возникает, если в элементе JSONPath правила используется недопустимый путь JSON. Например, если в полезной нагрузке JSON нет объекта Name, но вы указали Name в качестве пути в правиле, возникнет эта ошибка. |
build |
steps.extractvariables.JsonPathParsingFailure |
500 | Эта ошибка возникает, когда правилу не удается обработать путь JSON и извлечь данные из переменной потока, указанной в элементе Source. Обычно это происходит, если переменная потока, указанная в элементе Source, не существует в текущем потоке. |
build |
steps.extractvariables.SetVariableFailed |
500 | Эта ошибка возникает, если правилу не удалось задать значение для переменной. Эта ошибка обычно возникает, если вы пытаетесь присвоить значения нескольким переменным, названия которых начинаются с одних и тех же слов вложенного формата с точками. | build |
steps.extractvariables.SourceMessageNotAvailable |
500 | Эта ошибка возникает, если переменная message, указанная в элементе 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 |
Если в элементе XMLPayload нет элемента XPath, развертывание прокси-сервера API завершится с ошибкой.
|
build |
EmptyXPathExpression |
Если в правиле есть пустое выражение XPath в элементе XMLPayload, развертывание прокси-сервера API завершится неудачно. |
build |
NoJSONPathsToEvaluate |
Если в элементе JSONPayload нет элемента JSONPath, развертывание прокси-сервера API завершится с ошибкой. |
build |
EmptyJSONPathExpression |
Если в правиле есть пустое выражение XPath в элементе XMLPayload, развертывание прокси-сервера API завершится неудачно. |
build |
MissingName |
Если в каком-либо элементе правил, например QueryParam, Header, FormParam или Variable, отсутствует атрибут name, то развертывание прокси-сервера 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 – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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 | В заголовке JWS найден недопустимый JSON. |
steps.jws.InvalidPayload |
401 | Недействительная полезная нагрузка JWS. |
steps.jws.InvalidSignature |
401 | <DetachedContent> отсутствует, а полезная нагрузка контента JWS отделена. |
steps.jws.KeyIdMissing |
401 | Правило Verify использует 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 — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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>Правило GenerateJWT
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Когда возникает |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Возникает, когда в правиле проверки используется несколько алгоритмов. |
steps.jwt.AlgorithmMismatch |
401 | Алгоритм, указанный в правиле Generate, не совпадает с алгоритмом, ожидаемым в правиле Verify. Указанные алгоритмы должны совпадать. |
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 | Не удалось проверить утверждение subject в токене. |
steps.jwt.KeyIdMissing |
401 | Правило Verify использует JWKS в качестве источника открытых ключей, но подписанный JWT не содержит свойство kid в заголовке. |
steps.jwt.KeyParsingFailed |
401 | Не удалось проанализировать открытый ключ на основе предоставленной информации. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Возникает, когда в токене JWT нет заголовка алгоритма. |
steps.jwt.NoMatchingPublicKey |
401 | Правило Verify использует 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 — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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 | Происходит, когда код Java генерирует исключение или возвращает значение NULL во время выполнения политики JavaCallout. | build |
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего политику.
| Название ошибки | Строка неисправности | Статус HTTP | Происходит, когда |
|---|---|---|---|
ResourceDoesNotExist | Resource with name [name] and type [type] does not exist | Н/Д | Файл, указанный в элементе <ResourceURL> , не существует. |
JavaCalloutInstantiationFailed | Failed to instantiate the JavaCallout Class [classname] | Н/Д | Файл класса, указанный в элементе <ClassName> отсутствует в банке. |
IncompatibleJavaVersion | Failed to load java class [classname] definition due to - [reason] | Н/Д | См. строку ошибки. См. также Поддерживаемое программное обеспечение и поддерживаемые версии . |
JavaClassNotFoundInJavaResource | Failed to find the ClassName in java resource [jar_name] - [class_name] | Н/Д | См. строку ошибки. |
JavaClassDefinitionNotFound | Failed to load java class [class_name] definition due to - [reason] | Н/Д | См. строку ошибки. |
NoAppropriateConstructor | No appropriate constructor found in JavaCallout class [class_name] | Н/Д | См. строку ошибки. |
NoResourceForURL | Could not locate a resource with URL [string] | Н/Д | См. строку ошибки. |
Переменные неисправности
Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .
| Переменные | Где | Пример |
|---|---|---|
fault.name=" fault_name " | fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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>
Правила JavaScript
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые устанавливаются Edge, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила обработки ошибок. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Ошибки выполнения
Эти ошибки могут возникнуть при выполнении политики.
| Код неисправности | Статус HTTP | Причина | Исправить |
|---|---|---|---|
steps.javascript.ScriptExecutionFailed | 500 | Политика JavaScript может вызывать множество различных типов ошибок ScriptExecutionFailed. Часто встречающиеся типы ошибок включают RangeError , ReferenceError , SyntaxError , TypeError и URIError . | build |
steps.javascript.ScriptExecutionFailedLineNumber | 500 | Произошла ошибка в коде JavaScript. Подробности смотрите в строке ошибки. | Н/Д |
steps.javascript.ScriptSecurityError | 500 | Ошибка безопасности произошла при выполнении JavaScript. Подробности смотрите в строке ошибки. | Н/Д |
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidResourceUrlFormat | Если формат URL-адреса ресурса, указанный в элементе <ResourceURL> или <IncludeURL> политики JavaScript, недействителен, развертывание прокси-сервера API завершается неудачно. | build |
InvalidResourceUrlReference | Если элементы <ResourceURL> или <IncludeURL> ссылаются на несуществующий файл JavaScript, развертывание прокси-сервера API завершается неудачно. Исходный файл, на который есть ссылка, должен существовать либо на уровне прокси-сервера API, либо на уровне среды, либо на уровне организации. | build |
WrongResourceType | Эта ошибка возникает во время развертывания, если элементы <ResourceURL> или <IncludeURL> политики JavaScript относятся к любому типу ресурса, кроме jsc (файл JavaScript). | build |
NoResourceURLOrSource | Развертывание политики JavaScript может завершиться неудачей из-за этой ошибки, если элемент <ResourceURL> не объявлен или если URL-адрес ресурса не определен в этом элементе. Элемент <ResourceURL> является обязательным элементом. Или элемент <IncludeURL> объявлен, но URL-адрес ресурса не определен в этом элементе. Элемент <IncludeURL> является необязательным, но если он объявлен, URL-адрес ресурса должен быть указан внутри элемента <IncludeURL> . | build |
Переменные неисправности
Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .
| Переменные | Где | Пример |
|---|---|---|
fault.name=" fault_name " | fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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. Большинство этих ошибок возникает при превышении определенного порога, установленного в политике. К этим типам ошибок относятся: длина имени записи объекта , количество записей объекта , количество элементов массива , глубина контейнера , длина строкового значения . Эта ошибка также возникает, когда полезные данные содержат недопустимый объект JSON . | build |
steps.jsonthreatprotection.SourceUnavailable | 500 | Эта ошибка возникает, если переменная сообщения , указанная в элементе <Source> , имеет одно из следующих значений:
| build |
steps.jsonthreatprotection.NonMessageVariable | 500 | Эта ошибка возникает, если для элемента <Source> установлена переменная, которая не имеет типа message . | build |
Ошибки развертывания
Никто.
Переменные неисправности
Эти переменные устанавливаются, когда эта политика вызывает ошибку. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .
| Переменные | Где | Пример |
|---|---|---|
fault.name=" fault_name " | fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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 в 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>, имеет тип string (строка). |
build |
steps.jsontoxml.SourceUnavailable |
500 |
Эта ошибка возникает, если переменная message, указанная в элементе <Source> правила JSON в XML, имеет одно из следующих значений:
|
build |
Ошибки развертывания
Нет.
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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> правила "Операции с картой значений ключей".
|
build |
ValueIsMissing |
Эта ошибка возникает, если элемент <Value> отсутствует в элементе <Entry> элемента <InitialEntries> правила "Операции с картой значений ключей". |
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 |
Развертывание правила MessageLogging может завершиться с этой ошибкой, если протокол, указанный в элементе <Protocol>, недопустим. Допустимые протоколы – TCP и UDP.
Для отправки сообщений syslog по протоколу TLS/SSL поддерживается только TCP. |
build |
InvalidPort |
Развертывание правила MessageLogging может завершиться с этой ошибкой, если номер порта не указан в элементе <Port> или указан неверно. Номер порта должен быть целым числом больше нуля. |
build |
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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>Правила OASValidation
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются 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 – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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 – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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
В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Префикс кода ошибки
Н/Д
Ошибки выполнения
Эта политика не вызывает никаких ошибок во время выполнения.
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCacheResourceReference | Эта ошибка возникает, если для элемента <CacheResource> установлено имя, которое не существует в среде, где развертывается прокси-сервер API. | build |
InvalidTimeout | Если для элемента <CacheLookupTimeoutInSeconds> установлено отрицательное число, развертывание прокси-сервера API завершается неудачей. | build |
CacheNotFound | Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений. | build |
Переменные неисправности
Н/Д
Пример ответа об ошибке
Н/Д
Правило InvalidateCache
В этом разделе описаны сообщения об ошибках и переменные потока, которые задаются, когда эта политика вызывает ошибку. Эту информацию важно знать, если вы разрабатываете правила сбоев для прокси. Дополнительные сведения см. в разделах Что нужно знать об ошибках политики и Обработка ошибок .
Префикс кода ошибки
Н/Д
Ошибки выполнения
Эта политика не вызывает никаких ошибок во время выполнения.
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCacheResourceReference | Эта ошибка возникает, если элементу <CacheResource> в политике InvalidateCache присвоено имя, не существующее в среде, где развертывается прокси-сервер API. | build |
CacheNotFound | Эта ошибка возникает, если конкретный кэш, упомянутый в сообщении об ошибке, не был создан в определенном компоненте процессора сообщений. | build |
Переменные неисправности
Н/Д
Пример ответа об ошибке
Н/Д
Правила ResponseCache
В этом разделе описаны сообщения об ошибках и переменные потока, которые устанавливаются, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок для прокси. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Префикс кода ошибки
Н/Д
Ошибки времени выполнения
Это правило не вызывает ошибок во время выполнения.
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
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 |
Переменные ошибок
Н/Д
Пример ответа об ошибке
Н/Д
Правила OAuthV2
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина | Исключения, возникающие при выполнении операций |
|---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | Срок действия токена доступа истек. |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | Токен доступа был отозван. | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | Запрошенный ресурс не существует ни в одном из продуктов API, связанных с токеном доступа. | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | Политика должна была найти токен доступа в переменной, указанной в элементе <AccessToken>, но не смогла определить эту переменную. |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | Согласно правилу, код авторизации должен находиться в переменной, указанной в элементе <Code>, но переменную не удалось определить. |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | Правило должно было найти идентификатор клиента в переменной, указанной в элементе <ClientId>, но не смогло определить эту переменную. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | Правило должно было найти токен обновления в переменной, указанной в элементе <RefreshToken>, но не смогло определить эту переменную. |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | По правилам политики в переменной, указанной в элементе <Tokens>, должен быть токен, но переменную не удалось разрешить. |
ValidateToken |
steps.oauth.v2.InsufficientScope |
403 | Область действия токена доступа, представленного в запросе, не соответствует области действия, указанной в правиле проверки токена доступа. Подробнее о работе с областями действия OAuth2… | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | Недействительный токен доступа, отправленный клиентом. | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
Это название ошибки возвращается, когда для свойства Примечание. Рекомендуем изменить условия существующих правил обработки ошибок, чтобы они учитывали названия |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.InvalidRequest |
400 | Это название ошибки используется для разных типов неполадок, обычно связанных с отсутствием или неправильным указанием параметров в запросе. Если для <GenerateResponse> задано значение false, используйте переменные ошибки (описаны ниже), чтобы получить сведения об ошибке, например ее название и причину. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | В заголовке авторизации отсутствует слово "Bearer", которое является обязательным. Пример: Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 |
Прокси-сервер API не входит в продукт, связанный с токеном доступа. Советы. Убедитесь, что продукт, связанный с токеном доступа, настроен правильно. Например, если вы используете подстановочные знаки в путях к ресурсам, убедитесь, что они используются правильно. Подробнее о том, как создавать продукты API… Также ознакомьтесь с этой записью в сообществе Apigee, чтобы узнать больше о причинах этой ошибки. |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
Это название ошибки возвращается, когда для свойства |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | В правиле должен быть указан токен доступа или код авторизации, но не оба варианта одновременно. | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | В элементе <Tokens>/<Token> необходимо указать тип токена (например, refreshtoken). Если клиент передает неверный тип, возникает эта ошибка. |
ValidateToken InvalidateToken |
steps.oauth.v2.MissingParameter |
500 | Тип ответа – token, но типы предоставления не указаны. |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
Клиент указал тип авторизации, который не поддерживается правилом (не указан в элементе <SupportedGrantTypes>). Примечание. В настоящее время существует ошибка, из-за которой неправильно обрабатываются ошибки, связанные с неподдерживаемым типом предоставления. Если возникает ошибка "Неподдерживаемый тип предоставления", прокси-сервер не переходит к потоку ошибок, как и ожидается. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина |
|---|---|
InvalidValueForExpiresIn |
Для элемента |
InvalidValueForRefreshTokenExpiresIn |
Для элемента <RefreshTokenExpiresIn> допустимы положительные целые числа и значение -1. |
InvalidGrantType |
В элементе <SupportedGrantTypes> указан недопустимый тип предоставления. Список допустимых типов приведен в справочнике по правилам. |
ExpiresInNotApplicableForOperation |
Убедитесь, что операции, указанные в элементе <Operations>, поддерживают истечение срока действия. Например, операция VerifyToken не поддерживает этот параметр. |
RefreshTokenExpiresInNotApplicableForOperation |
Убедитесь, что операции, указанные в элементе <Operations>, поддерживают обновление токена. Например, операция VerifyToken не поддерживает этот параметр. |
GrantTypesNotApplicableForOperation |
Убедитесь, что типы разрешений, указанные в <SupportedGrantTypes>, поддерживаются для указанной операции. |
OperationRequired |
В этом правиле необходимо указать операцию с помощью элемента Примечание. Если элемент |
InvalidOperation |
В этом правиле необходимо указать допустимую операцию с помощью элемента Примечание. Если элемент |
TokenValueRequired |
В элементе <Tokens> необходимо указать значение токена <Token>. |
Переменные ошибок
Эти переменные задаются, когда правило вызывает ошибку во время выполнения.
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | fault.name = "InvalidRequest" |
oauthV2.policy_name.failed |
policy_name – заданное пользователем название правила, которое вызвало ошибку. | oauthV2.GenerateAccesstoken.failed = true |
oauthV2.policy_name.fault.name |
policy_name – заданное пользователем название правила, которое вызвало ошибку. | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
Примечание. Для операции VerifyAccessToken название ошибки включает следующий суффикс: |
oauthV2.policy_name.fault.cause |
policy_name – заданное пользователем название правила, которое вызвало ошибку. | oauthV2.GenerateAccesstoken.cause = Required param : grant_type |
Пример ответа об ошибке
Эти ответы отправляются клиенту, если элемент <GenerateResponse> имеет значение true.
Если для правила <GenerateResponse> задано значение true, при выполнении операций, генерирующих токены и коды, возвращаются ошибки в следующем формате: Полный список приведен в справочнике по HTTP-ответам с ошибками OAuth.
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}Если для параметра <GenerateResponse> задано значение true, то при выполнении операций проверки и подтверждения правила возвращают ошибки в следующем формате: Полный список приведен в справочнике по HTTP-ответам с ошибками OAuth.
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
Пример правила обработки ошибок
<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 | Срок действия токена обновления, отправленного в политику, истек. |
Ошибки развертывания
Обратитесь к сообщению, отображаемому в пользовательском интерфейсе, для получения информации об ошибках развертывания.
Переменные неисправности
Эти переменные устанавливаются, когда эта политика вызывает ошибку во время выполнения.
| Переменные | Где | Пример |
|---|---|---|
fault.name=" fault_name " | fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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 |
500 | Срок действия токена доступа, отправленного в правило, истек. |
steps.oauth.v2.invalid_access_token |
500 | Токен доступа, отправленный в правило, недействителен. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Информацию об устранении этой ошибки можно найти в сообществе 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. |
Ошибки развертывания
Информацию об ошибках развертывания можно найти в сообщении, которое показывается в интерфейсе.
Переменные ошибок
Эти переменные задаются, когда правило вызывает ошибку во время выполнения.
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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
Тип политики OAuthV1 определяет следующие коды ошибок.
Коды ошибок HTTP, связанные с OAuth, см. в Справочнике по ответу на ошибку HTTP OAuth .
| Код ошибки | Сообщение |
|---|---|
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
Для политики Get OAuth v1.0a Info не указаны коды ошибок.
Правило DeleteOAuthV1Info
В случае успеха политика возвращает статус 200.
В случае сбоя политика возвращает ошибку 404 и выдает следующий результат (в зависимости от того, удаляете ли вы токен доступа, токен запроса или средство проверки):
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 – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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>
Политики в отношении квот
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина | Исправить |
|---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | Возникает, если элемент <Interval> не определен в правиле квоты. Этот элемент обязателен и используется для указания временного интервала, к которому применяется квота. Временной интервал может быть в минутах, часах, днях, неделях или месяцах, как определено в элементе <TimeUnit>. |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | Возникает, если элемент <TimeUnit> не определен в правиле квоты. Этот элемент обязателен. Он используется для указания единицы времени, к которой относится квота. Временной интервал может быть указан в минутах, часах, днях, неделях или месяцах. |
build |
policies.ratelimit.InvalidMessageWeight |
500 | Возникает, если значение элемента <MessageWeight>, заданное с помощью переменной потока, является недопустимым (нецелым числом). |
build |
policies.ratelimit.QuotaViolation |
500 | Превышено ограничение по квоте. | Н/Д |
Ошибки развертывания
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidQuotaInterval |
Если интервал квоты, указанный в элементе <Interval>, не является целым числом, развертывание прокси-сервера API завершится неудачно. Например, если интервал квоты, указанный в элементе <Interval>, равен 0,1, развертывание прокси-сервера API завершится неудачно.
|
build |
InvalidQuotaTimeUnit |
Если единица времени, указанная в элементе <TimeUnit>, не поддерживается, развертывание прокси-сервера API завершится неудачно. Поддерживаются следующие единицы времени: minute, hour, day, week и month.
|
build |
InvalidQuotaType |
Если тип квоты, указанный в атрибуте type элемента <Quota>, недопустим, развертывание прокси-сервера API завершится неудачно. Поддерживаются следующие типы квот: default, calendar, flexi и rollingwindow.
|
build |
InvalidStartTime |
Если формат времени, указанный в элементе <StartTime>, недопустим, развертывание прокси-сервера API завершится неудачно. Допустимый формат: yyyy-MM-dd HH:mm:ss, где ISO 8601 – формат даты и времени. Например, если в элементе <StartTime> указано время 7-16-2017 12:00:00, развертывание прокси-сервера API завершится неудачно.
|
build |
StartTimeNotSupported |
Если указан элемент <StartTime>, тип квоты которого не является типом calendar, развертывание прокси-сервера API завершится неудачно. Элемент <StartTime> поддерживается только для типа квоты calendar. Например, если в элементе <Quota> атрибуту type присвоено значение flexi или rolling window, развертывание прокси-сервера API завершится неудачно.
|
build |
InvalidTimeUnitForDistributedQuota |
Если для элемента <Distributed> задано значение true, а для элемента <TimeUnit> – second, развертывание прокси-сервера API завершится неудачно. Единица времени second недопустима для распределенной квоты. |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
Если значение, указанное для элемента <SyncIntervalInSeconds> в элементе <AsynchronousConfiguration> в правиле квоты, меньше нуля, развертывание прокси-сервера API завершится неудачно. |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
Если в правиле квоты значение элемента <AsynchronousConfiguration> задано как true, а асинхронная конфигурация определена с помощью элемента <AsynchronousConfiguration>, то развертывание прокси-сервера API завершится неудачно. |
build |
Переменные ошибок
Эти переменные задаются, когда правило вызывает ошибку. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | fault.name Matches "QuotaViolation" |
ratelimit.policy_name.failed |
policy_name – заданное пользователем название правила, которое вызвало ошибку. | ratelimit.QT-QuotaPolicy.failed = true |
Пример ответа об ошибке
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
Пример правила обработки ошибок
<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> политики "Сброс квот", не определена в прокси-сервере API и поэтому недоступна во время выполнения. Элемент <Quota> обязателен и определяет целевую политику квот, счетчик которой нужно обновить с помощью политики сброса квот. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
Н/Д | Ссылка на переменную, содержащую количество разрешений, в элементе <Allow> правил не может быть преобразована в значение. Этот обязательный элемент указывает, на сколько нужно уменьшить счетчик квоты. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | Не удалось обработать переменную, на которую ссылается атрибут ref в элементе <Quota>. |
build |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidCount |
Если значение счетчика, указанное в элементе <Allow> правила сброса квоты, не является целым числом, развертывание прокси-сервера API завершится неудачно.
|
build |
Правило RaiseFault
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и как устранять неполадки…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина |
|---|---|---|
steps.raisefault.RaiseFault |
500 | Посмотреть строку ошибки. |
Ошибки развертывания
Нет.
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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, имеют единый формат, описанный в справочнике кодов ошибок.
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Сообщение |
|---|---|
| ExecutionFailed | Не удалось выполнить шаг определения защиты с помощью регулярных выражений {0}. Причина: {1} |
| InstantiationFailed | Не удалось создать экземпляр RegularExpressionProtection StepDefinition {0} |
| NonMessageVariable | Переменная {0} не преобразуется в сообщение |
| SourceMessageNotAvailable | Сообщение {0} недоступно для шага RegularExpressionProtection {1} |
| ThreatDetected | В {0} обнаружена угроза, связанная с регулярным выражением: regex: {1} input: {2} |
| VariableResolutionFailed | Не удалось распознать переменную {0} |
Ошибки развертывания
| Код ошибки | Сообщение | Исправить |
|---|---|---|
| CannotBeConvertedToNodeset | RegularExpressionProtection {0}: результат xpath {1} нельзя преобразовать в набор узлов. Контекст {2} | build |
| DuplicatePrefix | RegularExpressionProtection {0}: повторяющийся префикс {1} | build |
| EmptyJSONPathExpression | RegularExpressionProtection {0}: пустое выражение JSONPath | build |
| EmptyXPathExpression | RegularExpressionProtection {0}: пустой XPath-запрос | build |
| InvalidRegularExpression | RegularExpressionProtection {0}: недопустимое регулярное выражение {1}, контекст {2} | build |
| JSONPathCompilationFailed | 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 |
| XPathCompilationFailed | 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-запросы и ответы. Встроенные переменные потока Edge |
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 |
Правила SAMLAssertion
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
SourceNotConfigured |
Один или несколько из следующих элементов правила Validate SAML Assertion (Проверка утверждения SAML) не определены или пусты: <Source>, <XPath>, <Namespaces>, <Namespace>.
|
build |
TrustStoreNotConfigured |
Если элемент <TrustStore> пуст или не указан в правиле ValidateSAMLAssertion, развертывание прокси-сервера API завершится неудачно.
Требуется действительный значок "Надежный магазин".
|
build |
NullKeyStoreAlias |
Если дочерний элемент <Alias> пуст или не указан в элементе <Keystore> правила "Создать утверждение SAML", развертывание прокси API завершится неудачно. Требуется действительный псевдоним хранилища ключей.
|
build |
NullKeyStore |
Если дочерний элемент <Name> пуст или не указан в элементе <Keystore> правила GenerateSAMLAssertion, развертывание прокси API завершится неудачно. Требуется указать действительное название хранилища ключей.
|
build |
NullIssuer |
Если элемент <Issuer> пуст или не указан в правиле "Создать утверждение SAML", развертывание прокси-сервера 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 | Переменная запроса, указанная в правиле, не относится к типу "Сообщение запроса". Например, если это тип Response, вы увидите эту ошибку. | build |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
URLMissing |
Элемент <URL> внутри <HTTPTargetConnection>
отсутствует или не заполнен. |
build |
ConnectionInfoMissing |
Эта ошибка возникает, если в правиле нет элемента <HTTPTargetConnection> или <LocalTargetConnection>. |
build |
InvalidTimeoutValue |
Эта ошибка возникает, если значение <Timeout> отрицательное или нулевое. |
build |
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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. Этот обязательный элемент используется для указания скорости подавления пиков в формате intpm или intps. |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
Эта ошибка возникает, если значение, указанное для элемента <MessageWeight> с помощью переменной потока, является недопустимым (не целым числом). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
Превышено ограничение на частоту запросов. |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
InvalidAllowedRate |
Если указанное в элементе <Rate> правила Spike Arrest значение частоты не является целым числом или не имеет суффикса ps или pm, развертывание прокси-сервера API завершится неудачей. |
build |
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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>Правила StatisticsCollector
В этом разделе описаны сообщения об ошибках и переменные потока, которые устанавливаются, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок для прокси. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Нет.
Ошибки развертывания
| Название ошибки | Причина | Исправить |
|---|---|---|
UnsupportedDatatype |
Если тип переменной, указанный в атрибуте ref элемента <Statistic> правила "Сборщик статистики", не поддерживается, развертывание прокси-сервера API завершится неудачно. Поддерживаются следующие типы данных: string, integer, float, long, double и boolean. |
build |
InvalidName |
Если название, используемое для ссылки на данные, собранные для указанной переменной, определенной в элементе <Statistic> правила "Сборщик статистики", конфликтует с системной переменной, развертывание прокси-сервера API завершится неудачно. К известным системным переменным относятся, например, organization и environment. |
build |
DatatypeMissing |
Если тип переменной, указанной в атрибуте ref элемента <Statistic> правила "Сборщик статистики", отсутствует, развертывание прокси-сервера API завершится неудачно. |
build |
Переменные ошибок
Нет.
Правило VerifyAPIKey
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина |
|---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | Компания, связанная с приложением для разработчиков, в котором используется ваш ключ API, имеет неактивный статус. Если статус компании неактивен, вы не сможете получить доступ к разработчикам или приложениям, связанным с этой компанией. Администратор организации может изменить статус компании с помощью API управления. Подробнее о том, как задать статус компании… |
keymanagement.service.DeveloperStatusNotActive |
401 |
У разработчика, создавшего приложение, в котором используется ваш ключ API, неактивный статус. Если статус разработчика приложений установлен как неактивный, все созданные им приложения разработчика деактивируются. Администратор с соответствующими разрешениями (например, администратор организации) может изменить статус разработчика следующими способами:
|
keymanagement.service.invalid_client-app_not_approved |
401 | Приложение разработчика, связанное с ключом API, отозвано. Приложение, доступ которого был отозван, не может получить доступ к каким-либо продуктам API и вызвать какой-либо API, управляемый Apigee Edge. Администратор организации может изменить статус приложения разработчика с помощью API управления. Подробнее о том, как одобрить или отозвать доступ к приложению разработчика… |
oauth.v2.FailedToResolveAPIKey |
401 | Правило ожидает найти ключ API в переменной, указанной в элементе <APIKey>. Эта ошибка возникает, когда ожидаемая переменная не существует (не может быть разрешена). |
oauth.v2.InvalidApiKey |
401 | Edge получил ключ API, но он недействителен. Когда Edge ищет ключ в своей базе данных, он должен точно соответствовать тому, который был отправлен в запросе. Если API работал раньше, убедитесь, что ключ не был сгенерирован повторно. Если ключ был сгенерирован повторно, при попытке использовать старый ключ вы увидите эту ошибку. Подробнее о том, как регистрировать приложения и управлять ключами API… |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Edge получил действительный ключ API, но он не совпадает с одобренным ключом в приложении разработчика, связанном с вашим прокси-сервером API через продукт. |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина |
|---|---|
SpecifyValueOrRefApiKey |
В элементе <APIKey> не указано значение или ключ. |
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | fault.name Matches "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name – заданное пользователем название правила, которое вызвало ошибку. | oauthV2.VK-VerifyAPIKey.failed = true |
Примеры ответов об ошибках
{
"fault":{
"faultstring":"Invalid ApiKey",
"detail":{
"errorcode":"oauth.v2.InvalidApiKey"
}
}
}{
"fault":{
"detail":{
"errorcode":"keymanagement.service.DeveloperStatusNotActive"
},
"faultstring":"Developer Status is not Active"
}
}Пример правила обработки ошибок
<FaultRule name="FailedToResolveAPIKey">
<Step>
<Name>AM-FailedToResolveAPIKey</Name>
</Step>
<Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>Правило VerifyJWS
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Когда возникает |
|---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration |
401 | Возникает, когда в правилах проверки указано несколько алгоритмов. |
steps.jws.AlgorithmMismatch |
401 | Алгоритм, указанный в заголовке правилом Generate, не совпадает с алгоритмом, ожидаемым в правиле Verify. Указанные алгоритмы должны совпадать. |
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 | В заголовке JWS найден недопустимый JSON. |
steps.jws.InvalidJws |
401 | Эта ошибка возникает, когда не удается проверить подпись JWS. |
steps.jws.InvalidPayload |
401 | Недействительная полезная нагрузка JWS. |
steps.jws.InvalidSignature |
401 | <DetachedContent> отсутствует, а полезная нагрузка контента JWS отделена. |
steps.jws.KeyIdMissing |
401 | Правило Verify использует JWKS в качестве источника открытых ключей, но подписанный JWS не содержит свойство kid в заголовке. |
steps.jws.KeyParsingFailed |
401 | Не удалось проанализировать открытый ключ на основе предоставленной информации. |
steps.jws.MissingPayload |
401 | Отсутствует полезная нагрузка JWS. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Возникает, когда в заголовке JWS отсутствует алгоритм. |
steps.jws.NoMatchingPublicKey |
401 | Правило Verify использует 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 — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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>Правило VerifyJWT
В этом разделе описаны коды ошибок и сообщения об ошибках, которые возвращаются, а также переменные ошибок, которые задаются Edge, когда это правило вызывает ошибку. Эта информация важна, если вы разрабатываете правила обработки ошибок. Подробнее о том, что нужно знать об ошибках в правилах и об обработке ошибок…
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Когда возникает |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Возникает, когда в правиле проверки используется несколько алгоритмов. |
steps.jwt.AlgorithmMismatch |
401 | Алгоритм, указанный в правиле Generate, не совпадает с алгоритмом, ожидаемым в правиле Verify. Указанные алгоритмы должны совпадать. |
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 | Не удалось проверить утверждение subject в токене. |
steps.jwt.KeyIdMissing |
401 | Правило Verify использует JWKS в качестве источника открытых ключей, но подписанный JWT не содержит свойство kid в заголовке. |
steps.jwt.KeyParsingFailed |
401 | Не удалось проанализировать открытый ключ на основе предоставленной информации. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Возникает, когда в токене JWT нет заголовка алгоритма. |
steps.jwt.NoMatchingPublicKey |
401 | Правило Verify использует 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 |
InvalidValueForElement |
Если значение, указанное в элементе <Algorithm>, не является допустимым значением, развертывание завершится неудачно.
|
build |
MissingConfigurationElement |
Эта ошибка возникает, если элемент <PrivateKey> не используется с алгоритмами семейства RSA, а элемент <SecretKey> – с алгоритмами семейства HS.
|
build |
InvalidKeyConfiguration |
Если дочерний элемент <Value> не определен в элементах <PrivateKey> или <SecretKey>, развертывание завершится неудачно.
|
build |
EmptyElementForKeyConfiguration |
Если атрибут ref дочернего элемента <Value> элементов <PrivateKey> или <SecretKey> пуст или не указан, развертывание завершится неудачно.
|
build |
InvalidConfigurationForVerify |
Эта ошибка возникает, если элемент <Id> определен в элементе <SecretKey>.
|
build |
InvalidEmptyElement |
Эта ошибка возникает, если элемент <Source> правила Verify JWT пуст. Если он присутствует, то должен быть определен с именем переменной потока Edge.
|
build |
InvalidPublicKeyValue |
Если значение, используемое в дочернем элементе <JWKS> элемента <PublicKey>, не соответствует допустимому формату, указанному в RFC 7517, развертывание завершится неудачно.
|
build |
InvalidConfigurationForActionAndAlgorithm |
Если элемент <PrivateKey> используется с алгоритмами семейства HS или элемент <SecretKey> используется с алгоритмами семейства RSA, развертывание завершится неудачно.
|
build |
Переменные неисправности
Эти переменные устанавливаются при возникновении ошибки во время выполнения. Дополнительные сведения см. в разделе Что нужно знать об ошибках политики .
| Переменные | Где | Пример |
|---|---|---|
fault.name=" fault_name " | fault_name — это имя ошибки, как указано в таблице ошибок времени выполнения выше. Имя неисправности — это последняя часть кода неисправности. | 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 |
Эта ошибка возникает, если переменная message, указанная в элементе <Source>, является:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
Эта ошибка возникает, если для элемента <Source> задана переменная, которая не относится к типу message.
|
build |
Примечания
- Название ошибки ExecutionFailed является названием по умолчанию и возвращается независимо от типа обнаруженной ошибки. Однако это значение по умолчанию можно изменить, задав свойство на уровне организации. Если это свойство задано, название ошибки будет отражать фактическую ошибку. Например, TextExceeded или AttrValueExceeded. Подробную информацию можно найти в разделе Примечания по использованию.
- По умолчанию используется статус HTTP 500, но его можно изменить на 400 для ошибок в потоке запросов, задав свойство на уровне организации. Подробную информацию можно найти в разделе Примечания по использованию.
Ошибки развертывания
Нет.
Переменные ошибок
Эти переменные задаются при возникновении ошибки выполнения. Подробнее о нарушениях правил…
| Переменные | Место | Пример |
|---|---|---|
fault.name="fault_name" |
fault_name – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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) пусты или имеют неверный формат. | build |
steps.xmltojson.InCompatibleType |
500 | Эта ошибка возникает, если тип переменной, определенный в элементе <Source>, не совпадает с типом переменной, определенным в элементе <OutputVariable>. Типы переменных, содержащихся в элементах <Source> и <OutputVariable>, должны совпадать.
|
build |
steps.xmltojson.InvalidSourceType |
500 | Эта ошибка возникает, если тип переменной, используемой для определения элемента <Source>, недопустим.Допустимые типы переменных – message и string. |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | Эта ошибка возникает, если переменная, указанная в элементе <Source> правила XML в JSON, имеет строковый тип, а элемент <OutputVariable> не определен.
Элемент <OutputVariable> обязателен, если переменная, определенная в элементе <Source>, имеет тип string (строка). |
build |
steps.xmltojson.SourceUnavailable |
500 |
Эта ошибка возникает, если переменная message, указанная в элементе <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 – название ошибки, указанное в таблице Ошибки выполнения выше. Название ошибки – это последняя часть кода ошибки. | 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
Ошибки времени выполнения
Эти ошибки могут возникать при выполнении правил.
| Код ошибки | Статус HTTP | Причина | Исправить |
|---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Эта ошибка возникает, если переменная сообщения или строки, указанная в элементе <Source> правила преобразования XSL, находится вне области действия (недоступна в определенном потоке, в котором выполняется правило) или не может быть разрешена (не определена).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Эта ошибка возникает, если входные данные XML недоступны или имеют неверный формат, а также если правило XSLTransform не работает или не может преобразовать входной XML-файл на основе правил преобразования, указанных в XSL-файле. Причины сбоя правила XSLTransform могут быть разными. Причина ошибки в сообщении поможет вам понять, что произошло. | build |
Ошибки развертывания
Эти ошибки могут возникать при развертывании прокси-сервера, содержащего это правило.
| Название ошибки | Причина | Исправить |
|---|---|---|
XSLEmptyResourceUrl |
Если элемент <ResourceURL> в правиле преобразования XSL пуст, развертывание прокси-сервера API завершится неудачно. |
build |
XSLInvalidResourceType |
Если тип ресурса, указанный в элементе <ResourceURL> правила XSL Transform, не является типом xsl, развертывание прокси-сервера API завершится неудачно. |
build |