Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X. info
Règle AccessControl
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | L'adresse IP du client ou une adresse IP transmise dans la requête API correspond à une adresse IP spécifiée dans l'élément <SourceAddress> de l'élément <MatchRule> de la règle de contrôle d'accès AccessControl, et l'attribut action de l'élément <MatchRule> est défini sur DENY . |
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour plus d'informations, consultez la section Variables spécifiques aux erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur pour la règle qui a généré l'erreur. | acl.AC-AllowAccess.failed = true |
Exemple de réponse aux pannes
{ "fault":{ "faultstring":"Access Denied for client ip : 52.211.243.3" "detail":{ "errorcode":"accesscontrol.IPDeniedAccess" } } }
Exemple de règle de défaillance
<FaultRule name="IPDeniedAccess"> <Step> <Name>AM-IPDeniedAccess</Name> <Condition>(fault.name Matches "IPDeniedAccess") </Condition> </Step> <Condition>(acl.failed = true) </Condition> </FaultRule>
Règle AccessEntity
Pour en savoir plus, consultez les articles Ce que vous devez savoir sur les erreurs liées aux règles et la gestion des erreurs.
Erreurs d'exécution
Aucune
Erreurs de déploiement
Nom de l'erreur | Chaîne d'erreur | État HTTP | Se produit quand |
---|---|---|---|
InvalidEntityType |
Invalid type [entity_type] in ACCESSENTITYStepDefinition
[policy_name] |
N/A | Le type d'entité utilisé doit correspondre à l'un des types acceptés. |
Règle AssignMessage
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.assignmessage.SetVariableFailed |
500 | La règle n'a pas pu définir de variable. Consultez la chaîne d'erreur pour le nom de la variable non résolue. | |
steps.assignmessage.VariableOfNonMsgType |
500 |
Cette erreur se produit si l'attribut Les variables de type Message représentent des requêtes et des réponses HTTP entières. Edge intégré
les variables de flux |
build |
steps.assignmessage.UnresolvedVariable |
500 |
Cette erreur se produit si une variable spécifiée dans la règle AssignMessage est :
|
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidIndex |
Si l'index spécifié dans les éléments <Copy> et/ou <Remove> de la règle AssignMessage est 0 ou un nombre négatif, le déploiement du proxy d'API échoue. |
build |
InvalidVariableName |
Si l'élément enfant <Name> est vide ou non spécifié dans l'élément <AssignVariable> , le déploiement du proxy d'API échoue, car il n'existe pas de nom de variable valide auquel attribuer une valeur. Vous devez indiquer un nom de variable valide.
|
build |
InvalidPayload |
Une charge utile spécifiée dans la règle n'est pas valide. |
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "UnresolvedVariable" |
assignmessage.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | assignmessage.AM-SetResponse.failed = true |
Exemple de réponse d'erreur
{ "fault":{ "detail":{ "errorcode":"steps.assignmessage.VariableOfNonMsgType" }, "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message" } }
Exemple de règle de défaillance
<faultrule name="VariableOfNonMsgType"></faultrule><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>
Règle BasicAuthentication
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les erreurs. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.basicauthentication.InvalidBasicAuthenticationSource |
500 | Sur un décodage lorsque la chaîne entrante encodée en base64 ne contient pas de valeur valide ou si l'en-tête est incorrect (par exemple, ne commence pas par "Basic"). | build |
steps.basicauthentication.UnresolvedVariable |
500 | Les variables source requises pour le décodage ou l'encodage ne sont pas présentes. Cette erreur ne peut se produire que si la valeur de IgnoreUnresolvedVariables est "false". |
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Se produit quand | Corriger |
---|---|---|
UserNameRequired |
L'élément <User> doit être présent pour l'opération nommée. |
build |
PasswordRequired |
L'élément <Password> doit être présent pour l'opération nommée. |
build |
AssignToRequired |
L'élément <AssignTo> doit être présent pour l'opération nommée. |
build |
SourceRequired |
L'élément <Source> doit être présent pour l'opération nommée. |
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | BasicAuthentication.BA-Authenticate.failed = true |
Exemple de réponse d'erreur
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
Exemple de règle de défaillance
<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>
Règle ConcurrentRateLimit
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les erreurs. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
policies.concurrentratelimit.ConcurrentRatelimtViolation |
503 |
Seuil ConcurrentRatelimit dépassé. Limite de connexion : {0} Remarque:Le code d'erreur affiché à gauche est correct, bien qu'il contient une faute d'orthographe ("limt"). Veillez à utiliser le code tel qu'il est présenté ici lors de la création de règles d'erreur pour piéger cette erreur. |
Erreurs de déploiement
Nom de l'erreur | Se produit quand |
---|---|
InvalidCountValue |
Seuil ConcurrentRatelimit invalide. |
ConcurrentRatelimitStepAttachment\ |
Le rattachement simultané de la règle de limitation de débit {0} n'est pas autorisé au niveau du proxy les chemins d'accès aux requêtes, aux réponses et aux pannes. Cette règle doit être placée sur le point de terminaison cible. |
ConcurrentRatelimitStepAttachment\ |
La règle ConcurrentRatelimit {0} de limitation du débit simultané est manquante au niveau des chemins de requête/réponse/défaillance cibles. Cette règle doit être placée dans "Target Request Preflow", "Target Response Postflow", et "DefaultFaultRule". |
InvalidTTLForMessageTimeOut |
La valeur ttl spécifiée pour le délai avant expiration du message n'est pas valide pour ConcurrentRatelimit. Il doit s'agir entier positif. |
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "ConcurrentRatelimtViolation"
Remarque : Le code d'erreur présenté dans l'exemple est correct, bien qu'il contienne une coquille ("limt"). Veillez à utiliser le code tel qu'il apparaît ici lors de la création de règles de défaillance pour corriger cette erreur. |
concurrentratelimit.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | concurrentratelimit.CRL-RateLimitPolicy.failed = true |
Exemple de réponse d'erreur
Si la limite de débit est dépassée, la règle ne renvoie qu'un état HTTP 503 au client.
Exemple de règle de défaillance
<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>
Règle DecodeJWS
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
steps.jws.FailedToDecode |
401 | La règle n'a pas pu décoder le jeton JWS. Le jeton JWS est peut-être corrompu. |
steps.jws.FailedToResolveVariable |
401 | Cette erreur se produit si la variable de flux spécifiée dans l'élément <Source> de la règle n'existe pas. |
steps.jws.InvalidClaim |
401 | en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant. |
steps.jws.InvalidJsonFormat |
401 | JSON non valide trouvé dans l'en-tête JWS. |
steps.jws.InvalidJws |
401 | Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWS. |
steps.jws.InvalidPayload |
401 | La charge utile JWS n'est pas valide. |
steps.jws.InvalidSignature |
401 | <DetachedContent> est omis et le jeton JWS possède une charge utile de contenu dissociée. |
steps.jws.MissingPayload |
401 | La charge utile JWS est manquante. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Cette erreur produit lorsque le jeton JWS omet l'en-tête de l'algorithme. |
steps.jws.UnknownException |
401 | Une exception inconnue s'est produite. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Se produit quand |
---|---|
InvalidAlgorithm |
Les seules valeurs valides sont : RRS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
Autres erreurs de déploiement possibles. |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "TokenExpired" |
JWS.failed |
Toutes les règles JWS définissent la même variable en cas d'échec. | jws.JWS-Policy.failed = true |
Exemple de réponse d'erreur
Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode
de la réponse. Ne vous fiez pas au texte dans faultstring
, car il pourrait changer.
Exemple de règle de défaillance
<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>
Règle DecodeJWT
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Solution |
---|---|---|---|
steps.jwt.FailedToDecode |
401 | Se produit lorsque la stratégie ne parvient pas à décoder le jeton JWT. Le jeton JWT peut être incorrect, non valide ou non décodable. | build |
steps.jwt.FailedToResolveVariable |
401 | Cette erreur se produit si la variable de flux spécifiée dans l'élément <Source> de la règle n'existe pas. |
|
steps.jwt.InvalidToken |
401 | Se produit lorsque la variable de flux spécifiée dans l'élément <Source> de la règle est hors champ d'application ou ne peut être résolue. |
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidEmptyElement |
Se produit lorsque la variable de flux contenant le jeton JWT à décoder n'est pas spécifiée dans l'élément <Source> de la règle.
|
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "TokenExpired" |
JWT.failed |
All JWT policies set the same variable in the case of a failure. | JWT.failed = true |
Example error response
For error handling, the best practice is to trap the errorcode
part of the error
response. Do not rely on the text in the faultstring
, because it could change.
Example fault rule
<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>
Règle Extract Variables
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.extractvariables.ExecutionFailed |
500 |
This error occurs when:
|
build |
steps.extractvariables.ImmutableVariable |
500 | A variable used in the policy is immutable. The policy was unable to set this variable. | |
steps.extractvariables.InvalidJSONPath |
500 | This error occurs if an invalid JSON path is used in the JSONPath element of the
policy. For example, if a JSON payload does not have the object Name ,
but you specify Name as the path in the policy, then this error occurs. |
build |
steps.extractvariables.JsonPathParsingFailure |
500 | This error occurs when the policy is unable to parse a JSON path and
extract data from the flow variable specified in Source element. Typically this
happens if the flow variable specified in the Source element does not exist in the current
flow. |
build |
steps.extractvariables.SetVariableFailed |
500 | This error occurs if the policy could not set the value to a variable. The error generally happens if you try to assign values to multiple variables whose names start with the same words in a nested dot-separated format. | build |
steps.extractvariables.SourceMessageNotAvailable |
500 | This error occurs if the message
variable specified in the Source element of the policy
is either:
|
build |
steps.extractvariables.UnableToCast |
500 | This error occurs if the policy was unable to cast the extracted value to a variable. Typically this happens if you attempt to set the value of one data type to a variable of another data type. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
NothingToExtract |
If the policy does not have any of the elements URIPath , QueryParam ,
Header , FormParam , XMLPayload , or JSONPayload ,
the deployment of the API Proxy fails, because there's nothing to extract. |
build |
NONEmptyPrefixMappedToEmptyURI |
This error occurs if the policy has a prefix defined in the
Namespace element under the XMLPayload element, but no URI is
defined. |
build |
DuplicatePrefix |
This error occurs if the policy has the same prefix defined more than
once in the Namespace element under the XMLPayload element. |
build |
NoXPathsToEvaluate |
If the policy does not have the XPath element within the
XMLPayload element, then the deployment of the API proxy fails with this error.
|
build |
EmptyXPathExpression |
If the policy has an empty XPath expression within the XMLPayload
element, then the deployment of the API proxy fails. |
build |
NoJSONPathsToEvaluate |
If the policy does not have the JSONPath element within the
JSONPayload element, then the deployment of the API proxy fails with this error. |
build |
EmptyJSONPathExpression |
If the policy has an empty XPath expression within the
XMLPayload element, then the deployment of the API proxy fails. |
build |
MissingName |
If the policy does not have the name attribute in any of the policy
elements like QueryParam , Header , FormParam or
Variable , where it is required, then the deployment of the API proxy fails. |
build |
PatternWithoutVariable |
If the policy does not have a variable specified within the Pattern element,
then the deployment of the API proxy fails. The Pattern element requires the name of
the variable in which extracted data will be stored. |
build |
CannotBeConvertedToNodeset |
If the policy has an XPath expression where the Variable type
is defined as nodeset,
but the expression cannot be converted to nodeset, then the deployment of the API proxy fails. |
build |
JSONPathCompilationFailed |
The policy could not compile a specified JSON Path. | |
InstantiationFailed |
The policy could not be instantiated. | |
XPathCompilationFailed |
If the prefix or the value used in the XPath element is not part of any of the
declared namespaces in the policy, then the deployment of the API proxy
fails. |
build |
InvalidPattern |
If the Pattern element definition is invalid in any of the elements like URIPath ,
QueryParam , Header , FormParam , XMLPayload
or JSONPayload within the policy, then the deployment of the
API proxy fails.
|
build |
Fault variables
These variables are set when this policy triggers an error at runtime. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "SourceMessageNotAvailable" |
extractvariables.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | extractvariables.EV-ParseJsonResponse.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
Example fault rule
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>
Règle GenerateJWS
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
steps.jws.GenerationFailed |
401 | La règle n'a pas pu générer le jeton JWS. |
steps.jws.InsufficientKeyLength |
401 | Pour une clé inférieure à 32 octets pour l'algorithme HS256 |
steps.jws.InvalidClaim |
401 | en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant. |
steps.jws.InvalidCurve |
401 | La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique. |
steps.jws.InvalidJsonFormat |
401 | JSON non valide trouvé dans l'en-tête JWS. |
steps.jws.InvalidPayload |
401 | La charge utile JWS n'est pas valide. |
steps.jws.InvalidSignature |
401 | <DetachedContent> est omis et le jeton JWS possède une charge utile de contenu dissociée. |
steps.jws.KeyIdMissing |
401 | La règle de validation utilise un JWKS comme source pour les clés publiques, mais le JWS signé n'inclut pas de propriété kid dans l'en-tête. |
steps.jws.KeyParsingFailed |
401 | Impossible d'analyser la clé publique à partir des informations de clé fournies. |
steps.jws.MissingPayload |
401 | La charge utile JWS est manquante. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Cette erreur produit lorsque le jeton JWS omet l'en-tête de l'algorithme. |
steps.jws.SigningFailed |
401 | Dans GenerateJWS, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512 |
steps.jws.UnknownException |
401 | Une exception inconnue s'est produite. |
steps.jws.WrongKeyType |
401 | Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Se produit quand |
---|---|
InvalidAlgorithm |
Les seules valeurs valides sont : RRS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
Autres erreurs de déploiement possibles. |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "TokenExpired" |
JWS.failed |
Toutes les règles JWS définissent la même variable en cas d'échec. | jws.JWS-Policy.failed = true |
Exemple de réponse d'erreur
Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode
de la réponse. Ne vous fiez pas au texte dans faultstring
, car il pourrait changer.
Exemple de règle de défaillance
<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>
Stratégie GenerateJWT
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Se produit lorsque la règle de validation comporte plusieurs algorithmes. |
steps.jwt.AlgorithmMismatch |
401 | L'algorithme spécifié dans la règle "Générer" ne correspond pas à celui attendu dans la règle "Vérifier". Les algorithmes spécifiés doivent correspondre. |
steps.jwt.FailedToDecode |
401 | La règle n'a pas pu décoder le jeton JWT. Le jeton JWT est peut-être corrompu. |
steps.jwt.GenerationFailed |
401 | La règle n'a pas pu générer le jeton JWT. |
steps.jwt.InsufficientKeyLength |
401 | Pour une clé inférieure à 32 octets pour l'algorithme HS256, inférieure à 48 octets pour l'algorithme HS386 et inférieure à 64 octets pour l'algorithme HS512. |
steps.jwt.InvalidClaim |
401 | en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant. |
steps.jwt.InvalidCurve |
401 | La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique. |
steps.jwt.InvalidJsonFormat |
401 | JSON non valide trouvé dans l'en-tête ou la charge utile. |
steps.jwt.InvalidToken |
401 | Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWT. |
steps.jwt.JwtAudienceMismatch |
401 | La revendication d'audience a échoué lors de la vérification du jeton. |
steps.jwt.JwtIssuerMismatch |
401 | La revendication d'émetteur a échoué lors de la vérification du jeton. |
steps.jwt.JwtSubjectMismatch |
401 | La revendication de sujet a échoué lors de la vérification du jeton. |
steps.jwt.KeyIdMissing |
401 | La stratégie de validation utilise un JWKS comme source pour les clés publiques, mais le jeton JWT signé n'inclut pas de propriété kid dans l'en-tête. |
steps.jwt.KeyParsingFailed |
401 | Impossible d'analyser la clé publique à partir des informations de clé fournies. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Se produit lorsque le jeton JWT ne contient pas d'en-tête d'algorithme. |
steps.jwt.NoMatchingPublicKey |
401 | La règle de vérification utilise un JWKS en tant que source pour les clés publiques, mais le kid du jeton JWT signé n'est pas répertorié dans le JWKS. |
steps.jwt.SigningFailed |
401 | Dans GenerateJWT, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512 |
steps.jwt.TokenExpired |
401 | La règle tente de vérifier un jeton expiré. |
steps.jwt.TokenNotYetValid |
401 | Le jeton n'est pas encore valide. |
steps.jwt.UnhandledCriticalHeader |
401 | Un en-tête trouvé par la règle de vérification JWT dans l'en-tête crit n'est pas répertorié dans KnownHeaders . |
steps.jwt.UnknownException |
401 | Une exception inconnue s'est produite. |
steps.jwt.WrongKeyType |
401 | Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
InvalidNameForAdditionalClaim |
Le déploiement échouera si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est l'un des noms enregistrés suivants : kid , iss , sub , aud , iat , exp , nbf ou jti .
|
build |
InvalidTypeForAdditionalClaim |
Si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string , number , boolean ou map , le déploiement échouera.
|
build |
MissingNameForAdditionalClaim |
Si le nom de la revendication n'est pas spécifié dans l'élément enfant <Claim> de l'élément <AdditionalClaims> , le déploiement échouera.
|
build |
InvalidNameForAdditionalHeader |
Cette erreur se produit lorsque le nom de la revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est alg ou typ .
|
build |
InvalidTypeForAdditionalHeader |
Si le type de revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string , number , boolean ou map , le déploiement échouera.
|
build |
InvalidValueOfArrayAttribute |
Cette erreur se produit lorsque la valeur de l'attribut de tableau dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas définie sur true ou false .
|
build |
InvalidConfigurationForActionAndAlgorithm |
Si l'élément <PrivateKey> est utilisé avec des algorithmes de la famille HS ou que l'élément <SecretKey> est utilisé avec des algorithmes de la famille RSA, le déploiement échouera.
|
build |
InvalidValueForElement |
Si la valeur spécifiée dans l'élément <Algorithm> n'est pas acceptée, le déploiement échouera.
|
build |
MissingConfigurationElement |
Cette erreur se produit si l'élément <PrivateKey> n'est pas utilisé avec les algorithmes de la famille RSA ou si l'élément <SecretKey> n'est pas utilisé avec les algorithmes de la famille HS.
|
build |
InvalidKeyConfiguration |
Si l'élément enfant <Value> n'est pas défini dans les éléments <PrivateKey> ou <SecretKey> , le déploiement échouera.
|
build |
EmptyElementForKeyConfiguration |
Si l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> est vide ou non spécifié, le déploiement échouera.
|
build |
InvalidVariableNameForSecret |
Cette erreur se produit si le nom de la variable de flux spécifié dans l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> ne contient pas le préfixe privé (private.) .
|
build |
InvalidSecretInConfig |
Cette erreur se produit si l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> ne contient pas le préfixe privé (private.) .
|
build |
InvalidTimeFormat |
Si la valeur spécifiée dans l'élément <NotBefore> n'utilise pas un format compatible, le déploiement échouera.
|
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "TokenExpired" |
JWT.failed |
All JWT policies set the same variable in the case of a failure. | JWT.failed = true |
Example error response
For error handling, the best practice is to trap the errorcode
part of the error
response. Do not rely on the text in the faultstring
, because it could change.
Example fault rule
<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>
Règle JavaCallout
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.javacallout.ExecutionError |
500 | Se produit lorsque le code Java génère une exception ou renvoie une valeur nulle lors de l'exécution d'une règle JavaCallout. | build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque le proxy contenant la règle est déployé.
Nom de l'erreur | Chaîne d'erreur | État HTTP | Se produit quand |
---|---|---|---|
ResourceDoesNotExist |
Resource with name
[name] and type [type] does not exist |
ND | Le fichier spécifié dans l'élément <ResourceURL> n'existe pas. |
JavaCalloutInstantiationFailed |
Failed to instantiate the JavaCallout Class [classname] |
ND | Le fichier de classe spécifié dans l'élément <ClassName> n'est pas dans le fichier JAR. |
IncompatibleJavaVersion |
Failed to load java class [classname] definition due to - [reason] |
ND | Voir la chaîne d'erreur. Voir également les Logiciels compatibles et versions compatibles. |
JavaClassNotFoundInJavaResource |
Failed to find the ClassName in java resource [jar_name] -
[class_name] |
ND | Voir la chaîne d'erreur. |
JavaClassDefinitionNotFound |
Failed to load java class [class_name] definition due to - [reason] |
ND | Voir la chaîne d'erreur. |
NoAppropriateConstructor |
No appropriate constructor found in JavaCallout class [class_name] |
ND | Voir la chaîne d'erreur. |
NoResourceForURL |
Could not locate a resource with URL [string] |
ND | Voir la chaîne d'erreur. |
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "ExecutionError" |
javacallout.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | javacallout.JC-GetUserData.failed = true |
Exemple de réponse d'erreur
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
Exemple de règle de défaillance
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
Règle JavaScript
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.javascript.ScriptExecutionFailed |
500 | The JavaScript policy can throw many different types of ScriptExecutionFailed errors. Commonly seen types of errors include RangeError, ReferenceError, SyntaxError, TypeError, and URIError. | build |
steps.javascript.ScriptExecutionFailedLineNumber |
500 | An error occurred in the JavaScript code. See the fault string for details. | N/A |
steps.javascript.ScriptSecurityError |
500 | A security error occurred when the JavaScript executed. See the fault string for details. | N/A |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidResourceUrlFormat |
If the format of the resource URL specified within the <ResourceURL> or the <IncludeURL> element of the JavaScript policy is invalid, then the deployment of the API proxy fails. |
build |
InvalidResourceUrlReference |
If the <ResourceURL> or the <IncludeURL> elements
refer to a JavaScript file that does not exist, then the deployment of the API proxy fails.
The referenced source file must exist either the API proxy, environment, or organization level. |
build |
WrongResourceType |
This error occurs during deployment if the <ResourceURL> or the <IncludeURL>
elements of the JavaScript policy refer to any resource type other than jsc (JavaScript file). |
build |
NoResourceURLOrSource |
The deployment of the JavaScript policy can fail with this error if the <ResourceURL>
element is not declared or if the resource URL is not defined within this element.
<ResourceURL> element is a mandatory element. Or, The <IncludeURL> element is declared
but the resource URL is not defined within this element. The <IncludeURL> element is optional
but if declared, the resource URL must be specified within the <IncludeURL> element. |
build |
Fault variables
These variables are set when this policy triggers an error at runtime. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "ScriptExecutionFailed" |
javascript.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | javascript.JavaScript-1.failed = true |
Example error response
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"", "detail": { "errorcode": "steps.javascript.ScriptExecutionFailed" } } }
Example fault rule
<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>
Règle JSONThreatProtection
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.jsonthreatprotection.ExecutionFailed |
500 | La règle JSONThreatProtection peut générer de nombreux types d'erreurs ExecutionFailed. La plupart de ces erreurs se produisent lorsqu'un seuil spécifique défini dans la règle est dépassé. Ces types d'erreurs incluent les éléments suivants : longueur de noms d'entrée d'objet, nombre d'entrées d'objet, nombre d'éléments de tableau, profondeur de conteneur, longueur de valeur de chaîne. Cette erreur se produit également lorsque la charge utile contient un objet JSON non valide. | build |
steps.jsonthreatprotection.SourceUnavailable |
500 | Cette erreur se produit si la variable message spécifiée dans l'élément <Source> :
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 | Cette erreur se produit si l'élément <Source> est défini sur une variable qui n'est pas de type message. |
build |
Erreurs de déploiement
Aucune
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "SourceUnavailable" |
jsonattack.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | jsonattack.JTP-SecureRequest.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemple de règle de défaillance
<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>
Les types de règles JSONThreatProtection définissent les codes d'erreur suivants :
Règle JSONtoXML
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.jsontoxml.ExecutionFailed |
500 | La charge utile d'entrée (JSON) est vide ou la valeur d'entrée (JSON) transmise par règle JSON vers XML n'est pas valide ou est incorrecte. | build |
steps.jsontoxml.InCompatibleTypes |
500 | Cette erreur se produit si le type de la variable définie dans l'élément <Source> et l'élément <OutputVariable> ne sont pas identiques. Il est obligatoire que le type des variables contenues dans l'élément <Source> corresponde à celui de l'élément <OutputVariable> . Les types valides sont message et string . |
build |
steps.jsontoxml.InvalidSourceType |
500 | Cette erreur se produit si le type de la variable utilisée pour définir l'élément <Source> n'est pas valide. Les types de variables valides sont message et string . |
build |
steps.jsontoxml.OutputVariableIsNotAvailable |
500 | Cette erreur se produit si la variable spécifiée dans l'élément <Source> de la stratégie JSON vers XML est de type chaîne et que l'élément <OutputVariable> n'est pas défini.
L'élément <OutputVariable> est obligatoire lorsque la variable définie dans l'élément <Source> est de type chaîne. |
build |
steps.jsontoxml.SourceUnavailable |
500 | Cette erreur se produit si la variable message spécifiée dans l'élément <Source> de la stratégie JSON est XML :
|
build |
Erreurs de déploiement
Aucune
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "SourceUnavailable" |
jsontoxml.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | jsontoxml.JSON-to-XML-1.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available", "detail": { "errorcode": "steps.json2xml.SourceUnavailable" } } }
Exemple de règle de défaillance
<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>
Règle KeyValueMapOperations
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Solution |
---|---|---|---|
steps.keyvaluemapoperations.SetVariableFailed |
500 |
Cette erreur se produit si vous tentez de récupérer une valeur à partir d'un mappage clé-valeur chiffré et de la définir sur une variable dont le nom ne comporte pas le préfixe |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
Cette erreur se produit si l'attribut |
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidIndex |
Si l'attribut index spécifié dans l'élément <Get> de la règle des opérations de mappage clé-valeur est égal à zéro ou à un nombre négatif, le déploiement du proxy API échoue. L'index commence à partir de 1 . Un index égal à zéro ou à un entier négatif est donc considéré comme non valide.
|
build |
KeyIsMissing |
Cette erreur se produit si l'élément <Key> est complètement manquant ou si l'élément <Parameter> est manquant dans l'élément <Key> sous l'élément <Entry> de l'élément <InitialEntries> de la règle "Opérations de mappage de clés-valeurs".
|
build |
ValueIsMissing |
Cette erreur se produit si l'élément <Value> est manquant sous l'élément <Entry> de l'élément <InitialEntries> de la règle des opérations de mappage clé-valeur. |
build |
Règle LDAP
Cette règle utilise les codes d'erreur suivants:
Code d'erreur | d'un message ; |
---|---|
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. |
Règle de journalisation des messages
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
500 | Voir la chaîne d'erreur. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidProtocol |
Le déploiement de la règle MessageLogging peut échouer et renvoyer cette erreur si le protocole
spécifié dans l'élément <Protocol> n'est pas valide. Les protocoles valides sont TCP et UDP.
Pour l'envoi de messages syslog via TLS/SSL, seul TCP est accepté. |
build |
InvalidPort |
Le déploiement de la règle MessageLogging peut échouer et renvoyer cette erreur si le numéro de port n'est pas spécifié dans l'élément <Port> ou s'il n'est pas valide. Le numéro de port doit être un entier supérieur à zéro. |
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | messagelogging.ML-LogMessages.failed = true |
Exemple de réponse d'erreur
{ "fault":{ "detail":{ "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed" }, "faultstring":"Execution failed" } }
Exemple de règle de défaillance
<FaultRule name="MessageLogging"> <Step> <Name>ML-LogMessages</Name> <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition> </Step> <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition> </FaultRule>
Règle OASValidation
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | |
---|---|---|---|
steps.oasvalidation.Failed |
500 | Le corps du message de la requête ne peut pas être validé par rapport à la spécification OpenAPI fournie. | |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
La variable spécifiée dans l'élément |
|
steps.oasvalidation.NotMessageVariable |
500 |
L'élément |
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | |
---|---|---|
ResourceDoesNotExist |
La spécification OpenAPI référencée dans l'élément <OASResource> n'existe pas.
|
|
ResourceCompileFailed |
La spécification OpenAPI incluse dans le déploiement contient des erreurs qui empêchent sa compilation. Cela indique généralement que la spécification n'est pas une spécification OpenAPI 3.0 correctement formulée. | |
BadResourceURL |
La spécification OpenAPI référencée dans l'élément <OASResource> ne peut pas être traitée. Cela peut se produire si le fichier n'est pas un fichier JSON ou YAML, ou si l'URL du fichier n'est pas spécifiée correctement.
|
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où : | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "ResourceDoesNotExist" |
oasvalidation.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oasvalidation.myoaspolicy.failed = true |
Règle PopulateCache
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Une entrée ne peut pas être mise en cache. L'objet de message en cache n'est pas une instance d'une classe Serializable. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidCacheResourceReference |
Cette erreur se produit si l'élément <CacheResource> de la stratégie PopulateCache est défini sur un nom qui n'existe pas dans l'environnement dans lequel le proxy d'API est déployé. |
build |
CacheNotFound |
Le cache spécifié dans l'élément <CacheResource> n'existe pas. |
build |
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | populatecache.POP-CACHE-1.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Exemple de règle de défaillance
<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>
Règle LookupCache
Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Préfixe de code d'erreur
N/A
Erreurs d'exécution
Cette règle ne génère aucune erreur d'exécution.
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
InvalidCacheResourceReference |
Cette erreur se produit si l'élément <CacheResource> est défini sur un nom qui n'existe pas dans l'environnement dans lequel le proxy d'API est déployé. |
build |
InvalidTimeout |
Si l'élément <CacheLookupTimeoutInSeconds> est défini sur un nombre négatif, le déploiement du proxy d'API échoue. |
build |
CacheNotFound |
Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique. | build |
Variables de panne
ND
Exemple de réponse d'erreur
N/A
Règle InvalidateCache
Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Préfixe de code d'erreur
N/A
Erreurs d'exécution
Cette règle ne génère aucune erreur d'exécution.
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidCacheResourceReference |
Cette erreur se produit si l'élément <CacheResource> de la stratégie InvalidateCache est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé. |
build |
CacheNotFound |
Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique. | build |
Variables de panne
ND
Exemple de réponse d'erreur
N/A
Règle ResponseCache
Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Préfixe de code d'erreur
N/A
Erreurs d'exécution
Cette règle ne génère aucune erreur d'exécution.
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
InvalidTimeout |
Si l'élément <CacheLookupTimeoutInSeconds> de la règle ResponseCache est défini sur un nombre négatif, le déploiement du proxy d'API échoue. |
build |
InvalidCacheResourceReference |
Cette erreur se produit si l'élément <CacheResource> d'une règle ResponseCache est défini sur un nom qui n'existe pas dans l'environnement où le proxy d'API est déployé. |
build |
ResponseCacheStepAttachmentNotAllowedReq |
Cette erreur se produit si la même règle ResponseCache est associée à plusieurs chemins de requête dans tous les flux d'un proxy d'API. | build |
ResponseCacheStepAttachmentNotAllowedResp |
Cette erreur se produit si la même règle ResponseCache est associée à plusieurs chemins de réponse dans tous les flux d'un proxy d'API. | build |
InvalidMessagePatternForErrorCode |
Cette erreur se produit si les éléments <SkipCacheLookup> ou <SkipCachePopulation> d'une règle ResponseCache contiennent une condition non valide. |
build |
CacheNotFound |
Cette erreur se produit si le cache spécifique mentionné dans le message d'erreur n'a pas été créé sur un composant du processeur de messages spécifique. | build |
Variables de panne
ND
Exemple de réponse d'erreur
N/A
Règle OAuthV2
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables d'erreur définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Généré par des opérations |
---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | Le jeton d'accès est arrivé à expiration. |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | Le jeton d'accès a été révoqué. | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | La ressource demandée n'existe dans aucun des produits d'API associés au jeton d'accès. | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | La règle était censée trouver un jeton d'accès dans une variable spécifiée dans l'élément <AccessToken> , mais la variable n'a pas pu être résolue. |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | La règle était censée trouver un code d'autorisation dans une variable spécifiée dans l'élément <Code> , mais la variable n'a pas pu être résolue. |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | La règle était censée trouver l'ID client dans une variable spécifiée dans l'élément <ClientId> , mais la variable n'a pas pu être résolue. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | La règle était censée trouver un jeton d'actualisation dans une variable spécifiée dans l'élément <RefreshToken> , mais la variable n'a pas pu être résolue. |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | La règle était censée trouver un jeton dans une variable spécifiée dans l'élément <Tokens> , mais la variable n'a pas pu être résolue. |
ValidateToken |
steps.oauth.v2.InsufficientScope |
403 | Le champ d'application du jeton d'accès présenté dans la requête ne correspond pas à celui spécifié dans la règle VerifyAccessToken. Pour en savoir plus sur le champ d'application, consultez la page Utiliser des champs d'application OAuth2. | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | Le jeton d'accès envoyé à partir du client n'est pas valide. | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
Ce nom d'erreur est renvoyé lorsque la propriété Remarque : Nous vous recommandons de modifier les conditions de règle d'erreur existantes pour identifier les noms |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.InvalidRequest |
400 | Ce nom d'erreur est utilisé pour plusieurs types d'erreurs, généralement pour des paramètres manquants ou incorrects envoyés dans la requête. Si <GenerateResponse> est défini sur false , utilisez des variables d'erreur (décrites ci-dessous) pour récupérer des informations sur l'erreur, telles que son nom et sa cause. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | L'en-tête d'autorisation ne comporte pas le mot "Bearer", qui est obligatoire. Exemple : Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 |
Le proxy d'API ne se trouve pas dans le produit associé au jeton d'accès. Conseil : Assurez-vous que le produit associé au jeton d'accès est correctement configuré. Par exemple, si vous utilisez des caractères génériques dans les chemins d'accès aux ressources, veillez à les utiliser correctement. Pour plus d'informations, consultez la page Créer des produits d'API. Consultez également ce post destiné à la communauté Apigee pour en savoir plus sur les causes de cette erreur. |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
Ce nom d'erreur est renvoyé lorsque la propriété |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | La règle doit spécifier un jeton d'accès ou un code d'autorisation, mais pas les deux. | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | L'élément <Tokens>/<Token> nécessite de spécifier le type de jeton (par exemple, refreshtoken ). Si le client transmet le mauvais type, cette erreur est générée. |
ValidateToken InvalidateToken |
steps.oauth.v2.MissingParameter |
500 | Le type de réponse est token , mais aucun type d'attribution n'est spécifié. |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
Le client a spécifié un type d'attribution non compatible avec la règle (non répertorié dans l'élément <SupportedGrantTypes>). Remarque : Il existe actuellement un bug dans lequel les erreurs liées à un type d'attribution non compatible ne sont pas générées correctement. Si une erreur de ce genre se produit, le proxy ne passe pas par le flux d'erreurs, comme prévu. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause |
---|---|
InvalidValueForExpiresIn |
Pour l'élément |
InvalidValueForRefreshTokenExpiresIn |
Pour l'élément <RefreshTokenExpiresIn> , les valeurs valides sont des entiers positifs et -1 . |
InvalidGrantType |
Un type d'attribution non valide est spécifié dans l'élément <SupportedGrantTypes> . Pour obtenir la liste des types valides, consultez la documentation de référence sur les règles. |
ExpiresInNotApplicableForOperation |
Assurez-vous que les opérations spécifiées dans l'élément <Operations> sont compatibles avec l'expiration. Par exemple, ce n'est pas le cas de l'opération VerifyToken. |
RefreshTokenExpiresInNotApplicableForOperation |
Assurez-vous que les opérations spécifiées dans l'élément <Operations> sont compatibles avec l'expiration du jeton d'actualisation. Par exemple, ce n'est pas le cas de l'opération VerifyToken. |
GrantTypesNotApplicableForOperation |
Assurez-vous que les types d'attribution spécifiés dans <SupportedGrantTypes> sont compatibles pour l'opération spécifiée. |
OperationRequired |
Vous devez spécifier une opération dans cette règle à l'aide de l'élément Remarque : Si l'élément |
InvalidOperation |
Vous devez spécifier une opération valide dans cette règle à l'aide de l'élément Remarque : Si l'élément |
TokenValueRequired |
Vous devez spécifier une valeur de jeton <Token> dans l'élément <Tokens> . |
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.
Variables | Lieu | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "InvalidRequest" |
oauthV2.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GenerateAccesstoken.failed = true |
oauthV2.policy_name.fault.name |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
Remarque : Pour l'opération VerifyAccessToken, le nom d'erreur inclut le suffixe suivant : |
oauthV2.policy_name.fault.cause |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GenerateAccesstoken.cause = Required param : grant_type |
Exemple de réponse d'erreur
Ces réponses sont renvoyées au client si l'élément <GenerateResponse>
est défini sur true.
Si <GenerateResponse>
est défini sur true, la règle renvoie des erreurs dans ce format pour les opérations générant des jetons et des codes. Pour obtenir la liste complète, consultez la documentation de référence sur les réponses aux erreurs HTTP OAuth.
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}
Si <GenerateResponse>
est défini sur true, la règle renvoie des erreurs dans ce format pour les opérations de vérification et de validation. Pour obtenir la liste complète, consultez la documentation de référence sur les réponses aux erreurs HTTP OAuth.
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
Exemple de règle de défaillance
<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>
Règle GetOAuthV2Info
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle. Les noms d'erreur indiqués ci-dessous sont les chaînes attribuées à la variable fault.name
en cas d'erreur. Pour plus d'informations, consultez la section des variables de codes d'erreur ci-dessous.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | Le jeton d'accès envoyé à la règle a expiré. |
steps.oauth.v2.authorization_code_expired |
500 | Le code d'autorisation envoyé à la règle a expiré. |
steps.oauth.v2.invalid_access_token |
500 | Le jeton d'accès envoyé à la règle n'est pas valide. |
steps.oauth.v2.invalid_client-invalid_client_id |
500 | L'ID client envoyé à la règle n'est pas valide. |
steps.oauth.v2.invalid_refresh_token |
500 | Le jeton d'actualisation envoyé à la règle n'est pas valide. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
500 | Le code d'autorisation envoyé à la règle n'est pas valide. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur. |
steps.oauth.v2.refresh_token_expired |
500 | Le jeton d'actualisation envoyé à la règle a expiré. |
Erreurs de déploiement
Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
Exemple de réponse d'erreur
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
Exemple de règle de défaillance
<FaultRule name="OAuthV2 Faults"> <Step> <Name>AM-InvalidClientIdResponse</Name> </Step> <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition> </FaultRule>
Règle SetOAuthV2Info
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | Le jeton d'accès envoyé à la règle a expiré. |
steps.oauth.v2.invalid_access_token |
500 | Le jeton d'accès envoyé à la règle n'est pas valide. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur. |
Erreurs de déploiement
Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
Exemple de règle de défaillance
<FaultRule name=SetOAuthV2Info Faults"> <Step> <Name>AM-InvalidTokenResponse</Name> <Condition>(fault.name = "invalid_access_token")</Condition> </Step> <Condition>(oauthV2.failed = true) </Condition> </FaultRule>
Règle DeleteOAuthV2Info
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.oauth.v2.invalid_access_token |
401 | Le jeton d'accès envoyé à la règle n'est pas valide. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
401 | Le code d'autorisation envoyé à la règle n'est pas valide. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Veuillez consulter cet article de la communauté Apigee pour en savoir plus sur la résolution de cette erreur. |
Erreurs de déploiement
Reportez-vous au message indiqué dans l'interface utilisateur pour en savoir plus sur les erreurs de déploiement.
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur au moment de l'exécution.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.DeleteTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.DeleteTokenInfo.cause = Invalid Access Token |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "Invalid Access Token", "detail": { "errorcode": "keymanagement.service.invalid_access_token" } } }
Exemple de règle de défaillance
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults"> <Step> <Name>AM-InvalidTokenResponse</Name> </Step> <Condition>(fault.name = "invalid_access_token")</Condition> </FaultRule>
Règle OAuthv1.0a
Le type de règle OAuthV1 définit les codes d'erreur suivants.
Pour les codes d'erreur HTTP liés à OAuth, consultez la documentation de référence sur les réponses d'erreur HTTP OAuth.
Code d'erreur | d'un message ; |
---|---|
AppKeyNotResolved |
Could not resolve the app key with variable {0} |
ConsumerKeyNotResolved |
Could not resolve the consumer key with variable {0} |
RequestTokenNotResolved |
Could not resolve the request token with the variable {0} |
AccessTokenNotResolved |
Could not resolve the access token with the variable {0} |
ResponseGenerationError |
Error while generating response : {0} |
UnableToDetermineOperation |
Unable to determine an operation for stepDefinition {0} |
UnableToResolveOAuthConfig |
Unable to resolve the OAuth configuration for {0} |
AtLeastOneParamRequired |
At least one of AccessToken, RequestToken or ConsumerKey must be specified in
stepDefinition {0} |
SpecifyValueOrRefReqToken |
Specify Request Token as value or ref in stepDefinition {0} |
SpecifyValueOrRefAccToken |
Specify Access Token as value or ref in stepDefinition {0} |
SpecifyValueOrRefConKey |
Specify Consumer Key as value or ref in stepDefinition {0} |
SpecifyValueOrRefAppKey |
Specify App Key as value or ref in stepDefinition {0} |
ExpiresInNotApplicableForOperation |
ExpiresIn element is not valid for operation {0} |
InvalidValueForExpiresIn |
Invalid value for ExpiresIn element for operation {0} |
FailedToFetchApiProduct |
Failed to fetch api product for key {0} |
InvalidTokenType |
Valid token types : {0}, Invalid toke type {1} in stepDefinition {2} |
TokenValueRequired |
Token value is required in stepDefinition {0} |
FailedToResolveRealm |
Failed to resolve realm {0} |
Règle GetOAuthV1Info
Aucun code d'erreur n'est spécifié pour la stratégie d'informations Obtenir OAuth v1.0a.
Règle DeleteOAuthV1Info
On success, the policy returns a 200 status.
On failure, the policy returns 404 and output similar to the following (depending on whether you are deleting an access token, request token, or verifier.):
HTTP/1.1 404 Not Found Content-Type: application/json Content-Length: 144 Connection: keep-alive {"fault":{"faultstring":"Invalid Access Token","detail":{"errorcode":"keymanagement.service.invalid_request-access_token_invalid"}}}
Règle PythonScript
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
steps.script.ScriptEvaluationFailed |
500 | The PythonScript policy can throw several different types of ScriptExecutionFailed errors. Commonly seen types of errors include NameError and ZeroDivisionError. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
Error name | Cause | Fix |
---|---|---|
InvalidResourceUrlFormat |
If the format of the resource URL specified within the <ResourceURL> or
the <IncludeURL> element of the PythonScript policy is invalid, then the deployment of the API proxy fails. |
build |
InvalidResourceUrlReference |
If the <ResourceURL> or the <IncludeURL> elements
refer to a PythonScript file that does not exist, then the deployment of the API proxy fails.
The referenced source file must exist either the API proxy, environment, or organization level. |
build |
Fault variables
These variables are set when this policy triggers an error at runtime. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "ScriptExecutionFailed" |
pythonscript.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | pythonscript.PythonScript-1.failed = true |
Example error response
{ "fault": { "faultstring": "Execution of SetResponse failed with error: Pythonscript runtime error: "ReferenceError: "status" is not defined.\"", "detail": { "errorcode": "steps.script.ScriptExecutionFailed" } } }
Example fault rule
<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>
Règles de quotas
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
Fault code | HTTP status | Cause | Fix |
---|---|---|---|
policies.ratelimit.FailedToResolveQuotaIntervalReference |
500 | Occurs if the <Interval> element is not defined within the Quota policy. This element
is mandatory and used to specify the interval of time applicable to the quota. The time interval
can be minutes, hours, days, weeks, or months as defined with the <TimeUnit> element. |
build |
policies.ratelimit.FailedToResolveQuotaIntervalTimeUnitReference |
500 | Occurs if the <TimeUnit> element is not defined within the Quota policy. This element
is mandatory and used to specify the unit of time applicable to the quota. The time interval
can be in minutes, hours, days, weeks, or months. |
build |
policies.ratelimit.InvalidMessageWeight |
500 | Occurs if the value of the <MessageWeight> element specified through a flow variable
is invalid (a non-integer value). |
build |
policies.ratelimit.QuotaViolation |
500 | The quota limit was exceeded. | N/A |
Deployment errors
Error name | Cause | Fix |
---|---|---|
InvalidQuotaInterval |
If the quota interval specified in the <Interval> element is not
an integer, then the deployment of the API proxy fails. For example, if the quota interval
specified is 0.1 in the <Interval> element, then the deployment of the
API proxy fails.
|
build |
InvalidQuotaTimeUnit |
If the time unit specified in the <TimeUnit> element is unsupported,
then the deployment of the API proxy fails. The supported time units are minute ,
hour , day , week , and month .
|
build |
InvalidQuotaType |
If the type of the quota specified by the type attribute in the <Quota>
element is invalid, then the deployment of the API proxy fails. The
supported quota types are default , calendar , flexi , and rollingwindow .
|
build |
InvalidStartTime |
If the format of the time specified in the <StartTime> element is
invalid, then the deployment of the API proxy fails. The valid format is yyyy-MM-dd HH:mm:ss ,
which is the ISO 8601 date and time format. For
example, if the time specified in the <StartTime> element is
7-16-2017 12:00:00 then the deployment of the API proxy fails.
|
build |
StartTimeNotSupported |
If the <StartTime> element is specified whose quota type is not
calendar type, then the deployment of the API proxy fails. The <StartTime> element is
supported only for the calendar quota type. For example, if the type attribute is set
to flexi or rolling window in the <Quota> element, then the
deployment of the API proxy fails.
|
build |
InvalidTimeUnitForDistributedQuota |
If the <Distributed> element is set to true and the <TimeUnit> element is set to
second then the deployment of the API proxy fails. The timeunit second is invalid for
a distributed quota. |
build |
InvalidSynchronizeIntervalForAsyncConfiguration |
If the value specified for the <SyncIntervalInSeconds> element within the
<AsynchronousConfiguration> element in a Quota policy is less than zero, then the
deployment of the API proxy fails. |
build |
InvalidAsynchronizeConfigurationForSynchronousQuota |
If the value of the <AsynchronousConfiguration> element is set to true in a Quota policy, which also
has asynchronous configuration defined using the <AsynchronousConfiguration> element, then
the deployment of the API proxy fails. |
build |
Fault variables
These variables are set when this policy triggers an error. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "QuotaViolation" |
ratelimit.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | ratelimit.QT-QuotaPolicy.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.QuotaViolation" }, "faultstring":"Rate limit quota violation. Quota limit exceeded. Identifier : _default" } }
Example fault rule
<FaultRules> <FaultRule name="Quota Errors"> <Step> <Name>JavaScript-1</Name> <Condition>(fault.name Matches "QuotaViolation") </Condition> </Step> <Condition>ratelimit.Quota-1.failed=true</Condition> </FaultRule> </FaultRules>
Règle ResetQuota
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Solution |
---|---|---|---|
policies.resetquota.InvalidRLPolicy |
500 | La règle de quota spécifiée dans l'élément <Quota> de la règle de réinitialisation du quota n'est pas définie dans le proxy d'API et n'est donc pas disponible pendant le flux. L'élément <Quota> est obligatoire et identifie la règle de quota cible dont le compteur doit être mis à jour via la règle de réinitialisation du quota. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
N/A | La référence à la variable contenant le nombre autorisé dans l'élément <Allow> de la règle ne peut pas être transformée en valeur. Cet élément est obligatoire et spécifie le montant nécessaire pour diminuer le compteur de quotas. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | La variable référencée par l'attribut ref dans l'élément <Quota> ne peut pas être résolue. |
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
InvalidCount |
Si la valeur spécifiée dans l'élément <Allow> de la règle de réinitialisation de quota n'est pas un entier, le déploiement du proxy d'API échoue.
|
build |
Règle de génération d'erreur
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés ainsi que les variables d'erreur qui sont définis par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause |
---|---|---|
steps.raisefault.RaiseFault |
500 | Voir la chaîne d'erreur. |
Erreurs de déploiement
Aucune
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "RaiseFault" |
raisefault.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui je n'ai pas commis d'erreur. | raisefault.RF-ThrowError.failed = true |
Exemple de réponse d'erreur
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
Règle de protection contre les expressions régulières
Cette section décrit les codes d'erreur et les messages renvoyés et les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Si vous souhaitez capturer une erreur et générer votre propre erreur personnalisée, définissez l'attribut continueOnError="true"
sur l'élément racine de la règle.
Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Les erreurs renvoyées par les stratégies Edge suivent un format cohérent, comme décrit dans la référence du code d'erreur.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | Message |
---|---|
ExecutionFailed | Échec de l'exécution de RegularExpressionProtection StepDefinition {0}. Motif : {1} |
InstantiationFailed | Échec de l'instanciation de RegularExpressionProtection StepDefinition {0} |
NonMessageVariable | La variable {0} ne pointe pas vers un Message |
SourceMessageNotAvailable | Le message {0} n'est pas disponible pour RegularExpressionProtection StepDefinition {1} |
ThreatDetected | Menace d'expression régulière détectée dans {0}: regex: {1} input: {2} |
VariableResolutionFailed | Échec de la résolution de la variable {0} |
Erreurs de déploiement
Code d'erreur | Message | Corriger |
---|---|---|
CannotBeConvertedToNodeset | RegularExpressionProtection {0}: le résultat de xpath {1} ne peut pas être converti en ensemble de nœuds. Contexte {2} | build |
DuplicatePrefix | RegularExpressionProtection {0}: Dupliquer le préfixe {1} | build |
EmptyJSONPathExpression | RegularExpressionProtection {0}: Expression JSONPath vide | build |
EmptyXPathExpression | RegularExpressionProtection {0}: Expression XPath vide | build |
InvalidRegularExpression | RegularExpressionProtection {0}: Expression régulière non valide {1}, Contexte {2} | build |
JSONPathCompilationFailed | RegularExpressionProtection {0}: échec de la compilation de jsonpath {1}. Contexte {2} | build |
NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: Le préfixe non vide {1} ne peut pas être mappé avec l'URI vide. | build |
NoPatternsToEnforce | RegularExpressionProtection {0}: Aucun modèle à appliquer dans {1} | build |
NothingToEnforce | RegularExpressionProtection {0}: Au moins un URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload est obligatoire. | build |
XPathCompilationFailed | RegularExpressionProtection {0}: Échec de la compilation de xpath {1}. Contexte {2} | build |
Variables de panne
Ces variables sont définies lorsque cette règle déclenche une erreur. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où : | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, comme indiqué dans le tableau ci-dessus. | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |
Règle SOAPMessageValidation
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Solution |
---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable |
500 |
Cette erreur se produit si une variable spécifiée dans l'élément
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
Cette erreur se produit si l'élément Les variables de type Message représentent des requêtes et des réponses HTTP entières. Les variables de flux Edge intégrées |
build |
steps.messagevalidation.Failed |
500 | Cette erreur se produit si la règle SOAPMessageValidation ne parvient pas à valider la charge utile du message d'entrée par rapport au schéma XSD ou à la définition WSDL. Elle se produira également si le message de charge utile contient des syntaxes JSON ou XML incorrectes. | build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidResourceType |
L'élément <ResourceURL> de la stratégie SAMLMessageValidation est défini sur un type de ressource non compatible avec la stratégie.
|
build |
ResourceCompileFailed |
Le script de ressource référencé dans l'élément <ResourceURL> de la stratégie SAMLMessageValidation contient une erreur qui empêche sa compilation.
|
build |
RootElementNameUnspecified |
L'élément <Element> de la règle SOAPMessageValidation ne contient pas le nom de l'élément racine. |
build |
InvalidRootElementName |
L'élément <Element> de la stratégie SAMLMessageValidation contient un nom d'élément racine qui ne respecte pas les règles XML pour une dénomination valide des éléments. |
build |
Règle SAMLAssertion
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés et les variables de panne définies par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
SourceNotConfigured |
Un ou plusieurs des éléments suivants de la stratégie "Valider une assertion SAML" n'est pas défini ni vide : <Source> , <XPath> , <Namespaces> , <Namespace> . |
build |
TrustStoreNotConfigured |
Si l'élément <TrustStore> est vide ou non spécifié dans la stratégie ValidateSAMLAssertion, le déploiement du proxy d'API échoue.
Vous devez indiquer un fichier Trust Store valide.
|
build |
NullKeyStoreAlias |
Si l'élément enfant <Alias> est vide ou n'est pas spécifié dans <Keystore>
de la règle "Generate SAML Assertion" (Générer l'assertion SAML), puis le déploiement de l'API
le proxy échoue. Vous devez saisir un alias de keystore valide.
|
build |
NullKeyStore |
Si l'élément enfant <Name> est vide ou n'est pas spécifié dans <Keystore>
de la règle GenerateSAMLAssertion, le déploiement de l'API
le proxy échoue. Veuillez indiquer un nom de keystore valide.
|
build |
NullIssuer |
Si l'élément <Issuer> est vide ou n'est pas spécifié dans la stratégie "Générer l'assertion SAML", le déploiement du proxy d'API échoue. Vous devez saisir une valeur <Issuer> valide.
|
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur . Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
Pour une configuration de règle d'assertion SAML valide, le préfixe d'erreur est ValidateSAMLAssertion . |
GenerateSAMLAssertion.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
Exemple de règle de défaillance
<FaultRules> <FaultRule name="invalid_saml_rule"> <Step> <Name>invalid-saml</Name> </Step> <Condition>(GenerateSAMLAssertion.failed = "true")</Condition> </FaultRule> </FaultRules>
Règle ServiceCallout
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.servicecallout.ExecutionFailed |
500 |
Cette erreur peut se produire dans les cas suivants :
|
build |
steps.servicecallout.RequestVariableNotMessageType |
500 | La variable de requête spécifiée dans la stratégie n'est pas du type Message. Par exemple, s'il s'agit d'une chaîne ou d'un type autre qu'un message, cette erreur s'affiche. | build |
steps.servicecallout.RequestVariableNotRequestMessageType |
500 | La variable Request spécifiée dans la stratégie n'est pas du type Request Message. Par exemple, s'il s'agit d'un type de réponse, cette erreur s'affiche. | build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
URLMissing |
L'élément <URL> dans <HTTPTargetConnection> est manquant ou vide. |
build |
ConnectionInfoMissing |
Cette erreur se produit si la règle ne comporte pas d'élément <HTTPTargetConnection> ou <LocalTargetConnection> . |
build |
InvalidTimeoutValue |
Cette erreur se produit si la valeur <Timeout> est négative ou égale à zéro. |
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "RequestVariableNotMessageType" |
servicecallout.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | servicecallout.SC-GetUserData.failed = true |
Exemple de réponse d'erreur
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
Exemple de règle de défaillance
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType"> <Step> <Name>AM-RequestVariableNotMessageType</Name> </Step> <Condition>(fault.name = "RequestVariableNotMessageType")</Condition> </FaultRule>
Règle SpikeArrest
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés ainsi que les variables d'erreur qui sont définis par Edge lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
Cette erreur se produit si la référence à la variable contenant le paramètre de taux dans l'élément <Rate> ne peut pas être résolue en une valeur comprise dans la règle Spike Arrest. Cet élément est obligatoire et permet de spécifier le taux d'arrêt de pic sous la forme intpm ou intps . |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
Cette erreur se produit si la valeur spécifiée pour l'élément <MessageWeight> via une variable de flux n'est pas valide (valeur non entière). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
La limite de débit a été dépassée. <ph type="x-smartling-placeholder"> |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
InvalidAllowedRate |
Si le taux d'arrêt de pic spécifié dans l'élément <Rate> de la règle Spike Arrest n'est pas un entier ou si le taux ne comporte pas ps ou pm comme suffixe, alors le déploiement du proxy d'API échoue. |
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | ratelimit.SA-SpikeArrestPolicy.failed = true |
Exemple de réponse d'erreur
Vous trouverez ci-dessous un exemple de réponse d'erreur :
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
Exemple de règle de défaillance
Vous trouverez ci-dessous un exemple de règle d'erreur pour gérer une erreur 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>
Règle StatisticsCollector
Cette section décrit les messages d'erreur et les variables de flux définies lorsque cette règle déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance pour un proxy. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Aucune
Erreurs de déploiement
Nom de l'erreur | Cause | Corriger |
---|---|---|
UnsupportedDatatype |
Si le type de la variable spécifiée par l'attribut "ref" dans l'élément <Statistic> de la règle StatisticsCollector n'est pas compatible, le déploiement du proxy d'API échoue. Les types de données compatibles sont string , integer , float , long , double et boolean . |
build |
InvalidName |
Si le nom utilisé pour référencer les données collectées pour la variable spécifiée dans l'élément <Statistic> de la règle StatisticsCollector est en conflit avec une variable définie par le système, le déploiement du proxy d'API échoue. Voici quelques-unes des variables définies par le système connues : organization et environment . |
build |
DatatypeMissing |
Si le type de la variable spécifiée par l'attribut ref dans l'élément <Statistic> de la règle StatisticsCollector est manquant, le déploiement du proxy d'API échoue. |
build |
Variables de panne
Aucune.
Règle VerifyAPIKey
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause |
---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | L'entreprise associée à l'application de développeur qui possède la clé API que vous utilisez est à l'état "inactif". Lorsque l'état d'une entreprise est défini sur "inactif", vous ne pouvez pas accéder aux développeurs ni aux applications associées à cette entreprise. Un administrateur de l'entreprise peut modifier le statut d'une entreprise à l'aide de l'API de gestion. Consultez la section Définir l'état d'une entreprise. |
keymanagement.service.DeveloperStatusNotActive |
401 |
Le développeur ayant créé l'application de développeur disposant de la clé API que vous utilisez est à l'état "inactif". Lorsque l'état d'un développeur d'applications est défini sur "inactif", toutes les applications de développeur créées par ce développeur sont désactivées. Un administrateur disposant des autorisations appropriées (par exemple, administrateur de l'organisation) peut modifier l'état d'un développeur de différentes manières :
|
keymanagement.service.invalid_client-app_not_approved |
401 | L'application de développeur associée à la clé API est révoquée. Une application révoquée ne peut pas n'accède à aucun produit d'API et ne peut appeler aucune API gérée par Apigee Edge. Un administrateur de l'entreprise peut modifier l'état d'une application de développeur à l'aide de l'API de gestion. Consultez la section Approuver ou révoquer l'application de développeur |
oauth.v2.FailedToResolveAPIKey |
401 | La règle s'attend à trouver la clé API dans une variable spécifiée dans l'élément <APIKey> de la règle. Cette erreur se produit lorsque la variable attendue n'existe pas (elle ne peut pas être résolue). |
oauth.v2.InvalidApiKey |
401 | Edge a reçu une clé d'API qui n'est pas valide. Lorsque Edge recherche la clé dans son la base de données, elle doit correspondre exactement à celle qui a été envoyée dans la requête. Si l'API a fonctionné précédemment, assurez-vous que la clé n'a pas été générée de nouveau. Si la clé a été regénérée, cette erreur s'affiche si vous essayez d'utiliser l'ancienne clé. Pour en savoir plus, consultez la section Enregistrer des applications et gérer les clés API. |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Edge a reçu une clé API qui est valide. Toutefois, elle ne correspond pas clé approuvée dans l'Application de développement associée à votre proxy d'API via un produit. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause |
---|---|
SpecifyValueOrRefApiKey |
Aucune valeur ou clé n'est spécifiée pour l'élément <APIKey> . |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | oauthV2.VK-VerifyAPIKey.failed = true |
Exemple de réponses d'erreur
{ "fault":{ "faultstring":"Invalid ApiKey", "detail":{ "errorcode":"oauth.v2.InvalidApiKey" } } }
{ "fault":{ "detail":{ "errorcode":"keymanagement.service.DeveloperStatusNotActive" }, "faultstring":"Developer Status is not Active" } }
Exemple de règle de défaillance
<FaultRule name="FailedToResolveAPIKey"> <Step> <Name>AM-FailedToResolveAPIKey</Name> </Step> <Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition> </FaultRule>
Règle VerifyJWS
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration |
401 | Se produit lorsque la règle de validation comporte plusieurs algorithmes. |
steps.jws.AlgorithmMismatch |
401 | L'algorithme spécifié dans l'en-tête par la règle "Generate" (Générer) ne correspond pas à celui attendu dans la règle "Verify" (Vérifier). Les algorithmes spécifiés doivent correspondre. |
steps.jws.ContentIsNotDetached |
401 | <DetachedContent> est spécifié lorsque le fichier JWS ne contient pas de charge utile de contenu dissociée. |
steps.jws.FailedToDecode |
401 | La règle n'a pas pu décoder le jeton JWS. Le jeton JWS est peut-être corrompu. |
steps.jws.InsufficientKeyLength |
401 | Pour une clé inférieure à 32 octets pour l'algorithme HS256 |
steps.jws.InvalidClaim |
401 | en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant. |
steps.jws.InvalidCurve |
401 | La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique. |
steps.jws.InvalidJsonFormat |
401 | JSON non valide trouvé dans l'en-tête JWS. |
steps.jws.InvalidJws |
401 | Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWS. |
steps.jws.InvalidPayload |
401 | La charge utile JWS n'est pas valide. |
steps.jws.InvalidSignature |
401 | <DetachedContent> est omis et le jeton JWS possède une charge utile de contenu dissociée. |
steps.jws.KeyIdMissing |
401 | La règle de validation utilise un JWKS comme source pour les clés publiques, mais le JWS signé n'inclut pas de propriété kid dans l'en-tête. |
steps.jws.KeyParsingFailed |
401 | Impossible d'analyser la clé publique à partir des informations de clé fournies. |
steps.jws.MissingPayload |
401 | La charge utile JWS est manquante. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Cette erreur produit lorsque le jeton JWS omet l'en-tête de l'algorithme. |
steps.jws.NoMatchingPublicKey |
401 | La règle de validation utilise un JWKS comme source pour les clés publiques, mais le kid du JWS signé ne figure pas dans le JWKS. |
steps.jws.UnhandledCriticalHeader |
401 | Un en-tête trouvé par la règle de vérification JWS dans l'en-tête crit n'est pas répertorié dans KnownHeaders . |
steps.jws.UnknownException |
401 | Une exception inconnue s'est produite. |
steps.jws.WrongKeyType |
401 | Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Se produit quand |
---|---|
InvalidAlgorithm |
Les seules valeurs valides sont : RRS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
Autres erreurs de déploiement possibles. |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "TokenExpired" |
JWS.failed |
Toutes les règles JWS définissent la même variable en cas d'échec. | jws.JWS-Policy.failed = true |
Exemple de réponse d'erreur
Pour le traitement des erreurs, la meilleur pratique consiste à intercepter la partie errorcode
de la réponse. Ne vous fiez pas au texte dans faultstring
, car il pourrait changer.
Exemple de règle de défaillance
<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>
Règle VerifyJWT
Cette section décrit les codes d'erreur et les messages d'erreur renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Se produit quand |
---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Se produit lorsque la règle de validation comporte plusieurs algorithmes. |
steps.jwt.AlgorithmMismatch |
401 | L'algorithme spécifié dans la règle "Générer" ne correspond pas à celui attendu dans la règle "Vérifier". Les algorithmes spécifiés doivent correspondre. |
steps.jwt.FailedToDecode |
401 | La règle n'a pas pu décoder le jeton JWT. Le jeton JWT est peut-être corrompu. |
steps.jwt.GenerationFailed |
401 | La règle n'a pas pu générer le jeton JWT. |
steps.jwt.InsufficientKeyLength |
401 | Pour une clé inférieure à 32 octets pour l'algorithme HS256, inférieure à 48 octets pour l'algorithme HS386 et inférieure à 64 octets pour l'algorithme HS512. |
steps.jwt.InvalidClaim |
401 | en cas de revendication ou de non-concordance des revendications, ou si un en-tête ou un en-tête est manquant. |
steps.jwt.InvalidCurve |
401 | La courbe spécifiée par la clé n'est pas valide pour l'algorithme à courbe elliptique. |
steps.jwt.InvalidJsonFormat |
401 | JSON non valide trouvé dans l'en-tête ou la charge utile. |
steps.jwt.InvalidToken |
401 | Cette erreur se produit en cas d'échec de la validation de la signature du jeton JWT. |
steps.jwt.JwtAudienceMismatch |
401 | La revendication d'audience a échoué lors de la vérification du jeton. |
steps.jwt.JwtIssuerMismatch |
401 | La revendication d'émetteur a échoué lors de la vérification du jeton. |
steps.jwt.JwtSubjectMismatch |
401 | La revendication de sujet a échoué lors de la vérification du jeton. |
steps.jwt.KeyIdMissing |
401 | La stratégie de validation utilise un JWKS comme source pour les clés publiques, mais le jeton JWT signé n'inclut pas de propriété kid dans l'en-tête. |
steps.jwt.KeyParsingFailed |
401 | Impossible d'analyser la clé publique à partir des informations de clé fournies. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Se produit lorsque le jeton JWT ne contient pas d'en-tête d'algorithme. |
steps.jwt.NoMatchingPublicKey |
401 | La règle de vérification utilise un JWKS en tant que source pour les clés publiques, mais le kid du jeton JWT signé n'est pas répertorié dans le JWKS. |
steps.jwt.SigningFailed |
401 | Dans GenerateJWT, pour une clé inférieure à la taille minimale des algorithmes HS384 ou HS512 |
steps.jwt.TokenExpired |
401 | La règle tente de vérifier un jeton expiré. |
steps.jwt.TokenNotYetValid |
401 | Le jeton n'est pas encore valide. |
steps.jwt.UnhandledCriticalHeader |
401 | Un en-tête trouvé par la règle de vérification JWT dans l'en-tête crit n'est pas répertorié dans KnownHeaders . |
steps.jwt.UnknownException |
401 | Une exception inconnue s'est produite. |
steps.jwt.WrongKeyType |
401 | Type de clé spécifié incorrect. Par exemple, si vous spécifiez une clé RSA pour un algorithme à courbe elliptique ou une clé à courbe elliptique pour un algorithme RSA. |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
InvalidNameForAdditionalClaim |
Le déploiement échouera si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est l'un des noms enregistrés suivants : kid , iss , sub , aud , iat , exp , nbf ou jti .
|
build |
InvalidTypeForAdditionalClaim |
Si la revendication utilisée dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string , number , boolean ou map , le déploiement échouera.
|
build |
MissingNameForAdditionalClaim |
Si le nom de la revendication n'est pas spécifié dans l'élément enfant <Claim> de l'élément <AdditionalClaims> , le déploiement échouera.
|
build |
InvalidNameForAdditionalHeader |
Cette erreur se produit lorsque le nom de la revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> est alg ou typ .
|
build |
InvalidTypeForAdditionalHeader |
Si le type de revendication utilisé dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas du type string , number , boolean ou map , le déploiement échouera.
|
build |
InvalidValueOfArrayAttribute |
Cette erreur se produit lorsque la valeur de l'attribut de tableau dans l'élément enfant <Claim> de l'élément <AdditionalClaims> n'est pas définie sur true ou false .
|
build |
InvalidValueForElement |
Si la valeur spécifiée dans l'élément <Algorithm> n'est pas acceptée, le déploiement échouera.
|
build |
MissingConfigurationElement |
Cette erreur se produit si l'élément <PrivateKey> n'est pas utilisé avec les algorithmes de la famille RSA ou si l'élément <SecretKey> n'est pas utilisé avec les algorithmes de la famille HS.
|
build |
InvalidKeyConfiguration |
Si l'élément enfant <Value> n'est pas défini dans les éléments <PrivateKey> ou <SecretKey> , le déploiement échouera.
|
build |
EmptyElementForKeyConfiguration |
Si l'attribut "ref" de l'élément enfant <Value> des éléments <PrivateKey> ou <SecretKey> est vide ou non spécifié, le déploiement échouera.
|
build |
InvalidConfigurationForVerify |
Cette erreur se produit si l'élément <Id> est défini dans l'élément <SecretKey> .
|
build |
InvalidEmptyElement |
Cette erreur se produit si l'élément <Source> de la règle de vérification JWT est vide. Si elle est présente, elle doit être définie avec un nom de variable de flux Edge.
|
build |
InvalidPublicKeyValue |
Si la valeur utilisée dans l'élément enfant <JWKS> de l'élément <PublicKey> n'utilise pas un format valide tel que spécifié dans la RFC 7517, le déploiement échouera.
|
build |
InvalidConfigurationForActionAndAlgorithm |
Si l'élément <PrivateKey> est utilisé avec des algorithmes de la famille HS ou que l'élément <SecretKey> est utilisé avec des algorithmes de la famille RSA, le déploiement échouera.
|
build |
Fault variables
These variables are set when a runtime error occurs. For more information, see What you need to know about policy errors.
Variables | Where | Example |
---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "TokenExpired" |
JWT.failed |
All JWT policies set the same variable in the case of a failure. | JWT.failed = true |
Example error response
For error handling, the best practice is to trap the errorcode
part of the error
response. Do not rely on the text in the faultstring
, because it could change.
Example fault rule
<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>
Règle XMLThreatProtection
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | La règle XMLThreatProtection peut générer de nombreux types d'erreurs ExecutionFailed. La plupart de ces erreurs se produisent lorsqu'un seuil spécifique défini dans la règle est dépassé. Ces types d'erreurs incluent: longueur du nom de l'élément, nombre d'enfants, profondeur de nœud, nombre d'attributs, longueur du nom de l'attribut, et bien d'autres. Vous pouvez consulter la liste complète dans la rubrique Résolution des erreurs d'exécution de la stratégie XMLThreatProtection. | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 | Cette erreur se produit si la charge utile du message d'entrée spécifié par l'élément <Source> de la stratégie XMLThreatProtection n'est pas un document XML valide. |
build |
steps.xmlthreatprotection.SourceUnavailable |
500 | Cette erreur se produit si la variable message spécifiée dans l'élément <Source> :
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 | Cette erreur se produit si l'élément <Source> est défini sur une variable qui n'est pas de type message. |
build |
Remarques :
- Le nom d'erreur "ExecutionFailed" est le nom d'erreur par défaut. Il est renvoyé quel que soit le le type d'erreur détecté ; Toutefois, vous pouvez modifier cette valeur par défaut en définissant au niveau de l'organisation. Lorsque cette propriété est définie, le nom de l'erreur reflète la valeur réelle . Exemple : "TextExceeded" ou "AttrValueExceeded". Pour en savoir plus, consultez la section Remarques sur l'utilisation.
- L'état HTTP 500 est défini par défaut. Toutefois, pour les erreurs de flux de requêtes, cette valeur peut être remplacée par 400 en définissant une propriété au niveau de l'organisation. Pour en savoir plus, consultez la section Remarques sur l'utilisation.
Erreurs de déploiement
Aucune
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name Matches "SourceUnavailable" |
xmlattack.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | xmlattack.XPT-SecureRequest.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Exemple de règle de défaillance
<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>
Règle XMLtoJSON
Cette section décrit les codes d'erreur et les messages d'erreur qui sont renvoyés, ainsi que les variables d'erreur définies par Edge lorsque cette stratégie déclenche une erreur. Ces informations sont importantes si vous développez des règles de défaillance afin de gérer les pannes. Pour en savoir plus, consultez les pages Ce que vous devez savoir à propos des erreurs liées aux règles et Gérer les pannes.
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Corriger |
---|---|---|---|
steps.xmltojson.ExecutionFailed |
500 | Cette erreur se produit lorsque la charge utile d'entrée (XML) est vide ou que le code XML d'entrée est mal configuré ou non valide. | build |
steps.xmltojson.InCompatibleType |
500 | Cette erreur se produit si le type de la variable définie dans l'élément <Source> et l'élément <OutputVariable> ne sont pas identiques. La correspondance du type des variables contenues dans l'élément <Source> et l'élément <OutputVariable> est obligatoire.
|
build |
steps.xmltojson.InvalidSourceType |
500 | Cette erreur se produit si le type de la variable utilisée pour définir l'élément <Source> n'est pas valide. Les types de variable valides sont message et chaîne. |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | Cette erreur se produit si la variable spécifiée dans l'élément <Source> de la règle XML vers JSON est de type chaîne et que l'élément <OutputVariable> n'est pas défini.
L'élément <OutputVariable> est obligatoire lorsque la variable définie dans l'élément <Source> est de type chaîne. |
build |
steps.xmltojson.SourceUnavailable |
500 | Cette erreur se produit si la variable message spécifiée dans l'élément <Source> de la règle XML vers JSON est l'une des suivantes :
|
build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Corriger |
---|---|---|
EitherOptionOrFormat |
Si l'un des éléments <Options> ou <Format> n'est pas déclaré dans la règle XML vers JSON, le déploiement du proxy d'API échoue. |
build |
UnknownFormat |
Si un format inconnu est défini sur l'élément <Format> de la règle XML vers JSON, le déploiement du proxy d'API échoue. Les formats prédéfinis sont les suivants : xml.com , yahoo , google et badgerFish .
|
build |
Variables de panne
Ces variables sont définies lorsqu'une erreur d'exécution se produit. Pour en savoir plus, consultez la section Ce que vous devez savoir sur les erreurs liées aux règles.
Variables | Où | Exemple |
---|---|---|
fault.name="fault_name" |
fault_name est le nom de l'erreur, tel qu'indiqué dans le tableau Erreurs d'exécution ci-dessus. Le nom d'erreur est la dernière partie du code d'erreur. | fault.name = "SourceUnavailable" |
xmltojson.policy_name.failed |
policy_name est le nom spécifié par l'utilisateur de la règle qui a provoqué l'erreur. | xmltojson.XMLtoJSON-1.failed = true |
Exemple de réponse d'erreur
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
Exemple de règle de défaillance
<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>
Règle XSLTransform
Erreurs d'exécution
Ces erreurs peuvent se produire lors de l'exécution de la règle.
Code d'erreur | État HTTP | Cause | Solution |
---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
Cette erreur se produit si le message ou la variable de chaîne spécifiée dans l'élément <Source> de la règle de transformation XSL n'est pas dans le champ d'application (non disponible dans le flux spécifique où la règle est exécutée) ou ne peut pas être résolu (non défini).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | Cette erreur se produit si la charge utile du fichier XML d'entrée est non disponible/mal formée, ou si la règle XSLTransform échoue/ne parvient pas à transformer le fichier XML d'entrée en fonction des règles de transformation fournies dans le fichier XSL. Plusieurs raisons peuvent expliquer l'échec de la règle XSLTransform. La raison de l'échec dans le message d'erreur fournira davantage d'informations sur la cause de l'échec. | build |
Erreurs de déploiement
Ces erreurs peuvent se produire lorsque vous déployez un proxy contenant cette règle.
Nom de l'erreur | Cause | Solution |
---|---|---|
XSLEmptyResourceUrl |
Si l'élément <ResourceURL> de la règle de Transformation XSL est vide, le déploiement du proxy d'API échoue. |
build |
XSLInvalidResourceType |
Si le type de ressource spécifié dans l'élément <ResourceURL> de la règle de Transformation XSL n'est pas du type xsl , le déploiement du proxy d'API échoue. |
build |