Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
Política AccessControl
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | O endereço IP do cliente, ou um endereço IP transmitido
na solicitação de API, corresponde a um endereço IP especificado no elemento <SourceAddress> dentro
do elemento <MatchRule> da política de controle de acesso e o atributo action do elemento
<MatchRule> está definido como DENY. |
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte Variáveis específicas para erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | acl.AC-AllowAccess.failed = true |
Exemplo de resposta com falha
{
"fault":{
"faultstring":"Access Denied for client ip : 52.211.243.3"
"detail":{
"errorcode":"accesscontrol.IPDeniedAccess"
}
}
}Exemplo de regra de falha
<FaultRule name="IPDeniedAccess">
<Step>
<Name>AM-IPDeniedAccess</Name>
<Condition>(fault.name Matches "IPDeniedAccess") </Condition>
</Step>
<Condition>(acl.failed = true) </Condition>
</FaultRule>Política de AccessEntity
Para informações relacionadas, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Nenhum.
Erros de implantação
| Nome do erro | String de falha | Status HTTP | Ocorre quando |
|---|---|---|---|
InvalidEntityType |
Invalid type [entity_type] in ACCESSENTITYStepDefinition
[policy_name] |
N/A | O tipo de entidade usado precisa ser um dos tipos compatíveis. |
Política AssignMessage
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.assignmessage.SetVariableFailed |
500 | Não foi possível definir uma variável na política. Veja a string de falha para o nome da variável não resolvida. | |
steps.assignmessage.VariableOfNonMsgType |
500 |
Esse erro ocorrerá se o atributo As variáveis do tipo Message representam solicitações e respostas HTTP completas. O Edge integrado
as variáveis de fluxo |
build |
steps.assignmessage.UnresolvedVariable |
500 |
Esse erro ocorrerá se uma variável especificada na política "Atribuir mensagem":
|
build |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Correção |
|---|---|---|
InvalidIndex |
Se o índice especificado nos elementos <Copy> e/ou <Remove> da política "Atribuir mensagem"
for 0 ou um número negativo, a implantação do proxy da API falhará.
|
build |
InvalidVariableName |
Se o elemento filho <Name> estiver vazio ou não for especificado no elemento <AssignVariable>,
a implantação do proxy de API falhará porque não há um nome de variável válido para
atribuir um valor. Um nome de variável válido é obrigatório.
|
build |
InvalidPayload |
Um payload especificado na política é inválido. |
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "UnresolvedVariable" |
assignmessage.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | assignmessage.AM-SetResponse.failed = true |
Exemplo de resposta de erro
{ "fault":{ "detail":{ "errorcode":"steps.assignmessage.VariableOfNonMsgType" }, "faultstring":"AssignMessage[AM-SetResponse]: value of variable is not of type Message" } }
Exemplo de regra de falha
<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>
Política BasicAuthentication
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 errors. 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.basicauthentication.InvalidBasicAuthenticationSource |
500 | On a decode when the incoming Base64 encoded string does not contain a valid value or the header is malformed (e.g., does not start with "Basic"). | build |
steps.basicauthentication.UnresolvedVariable |
500 | The required source variables for the decode or encode are not present. This error can
only occur if IgnoreUnresolvedVariables is false. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Occurs when | Fix |
|---|---|---|
UserNameRequired |
The <User> element must be present for the named operation. |
build |
PasswordRequired |
The <Password> element must be present for the named operation. |
build |
AssignToRequired |
The <AssignTo> element must be present for the named operation. |
build |
SourceRequired |
The <Source> element must be present for the named operation. |
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 "UnresolvedVariable" |
BasicAuthentication.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | BasicAuthentication.BA-Authenticate.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"steps.basicauthentication.UnresolvedVariable" }, "faultstring":"Unresolved variable : request.queryparam.password" } }
Example fault rule
<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>Política ConcurrentRateLimit
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com erros. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
policies.concurrentratelimit.ConcurrentRatelimtViolation |
503 |
Conexão ConcurrentRatelimit excedida. Limite de conexão: {0} Observação: o código de falha mostrado à esquerda está correto, ainda que contenha um erro de ortografia ("limt"). Use o código exatamente como mostrado aqui ao criar regras de falha para capturar esse erro. |
Erros de implantação
| Nome do erro | Ocorre quando |
|---|---|
InvalidCountValue |
Valor especificado de contagem inválida ConcurrentRatelimit. |
ConcurrentRatelimitStepAttachment\ |
O anexo de política simultânea de Ratelimit {0} não é permitido em caminhos de solicitação/resposta/falta de proxy. Essa política precisa ser colocada no endpoint de destino. |
ConcurrentRatelimitStepAttachment\ |
O anexo da política de Ratelimit {0} está ausente nos caminhos de destino solicitação/resposta/falha. Essa política precisa ser colocada no pré-fluxo de solicitação de destino, pós-fluxo de resposta de destino e DefaultFaultRule. |
InvalidTTLForMessageTimeOut |
Valor de ttl inválido do ConcurrentRatelimit especificado para tempo limite da mensagem. Precisa ser um número inteiro positivo. |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "ConcurrentRatelimtViolation"
Observação: o código de erro mostrado no exemplo está correto, ainda que contenha um erro de ortografia ("limt"). Use o código exatamente como mostrado aqui ao criar regras de falha para capturar esse erro. |
concurrentratelimit.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | concurrentratelimit.CRL-RateLimitPolicy.failed = true |
Exemplo de resposta de erro
Se o limite de taxa for excedido, a política retornará somente o status HTTP 503 para o cliente.
Exemplo de regra de falha
<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>Política DecodeJWS
This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Occurs when |
|---|---|---|
steps.jws.FailedToDecode |
401 | The policy was unable to decode the JWS. The JWS is possibly corrupted. |
steps.jws.FailedToResolveVariable |
401 | Occurs when the flow variable specified in the <Source> element of
the policy does not exist. |
steps.jws.InvalidClaim |
401 | For a missing claim or claim mismatch, or a missing header or header mismatch. |
steps.jws.InvalidJsonFormat |
401 | Invalid JSON found in the JWS header. |
steps.jws.InvalidJws |
401 | This error occurs when the JWS signature verification fails. |
steps.jws.InvalidPayload |
401 | The JWS payload is invalid. |
steps.jws.InvalidSignature |
401 | <DetachedContent> is omitted and the JWS has a detached content payload. |
steps.jws.MissingPayload |
401 | The JWS payload is missing. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Occurs when the JWS omits the algorithm header. |
steps.jws.UnknownException |
401 | An unknown exception occurred. |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Occurs when |
|---|---|
InvalidAlgorithm |
The only valid values are: RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Other possible deployment errors. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas as políticas de JWS definem a mesma variável em caso de falha. | jws.JWS-Policy.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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>Política chamada de retorno
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falhas para lidar com elas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Corrigir |
|---|---|---|---|
steps.jwt.FailedToDecode |
401 | Ocorre quando a política não pode decodificar o JWT. O JWT pode estar incorreto, inválido ou não descodificável. | build |
steps.jwt.FailedToResolveVariable |
401 | Ocorre quando a variável de fluxo especificada no elemento <Source> da
política não existe. |
|
steps.jwt.InvalidToken |
401 | Ocorre quando a variável de fluxo especificada no elemento <Source> da
política está fora do escopo ou não pode ser resolvida. |
build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa | Correção |
|---|---|---|
InvalidEmptyElement |
Ocorre quando a variável de fluxo que contém o JWT a ser decodificado não é especificada no
elemento <Source> da política.
|
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWT.failed |
Todas as políticas do JWT definem a mesma variável em caso de falha. | JWT.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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>
Política ExtractVariables
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.extractvariables.ExecutionFailed |
500 |
Esse erro ocorre quando:
|
build |
steps.extractvariables.ImmutableVariable |
500 | Uma variável usada na política é imutável. A política não conseguiu definir essa variável. | |
steps.extractvariables.InvalidJSONPath |
500 | Esse erro ocorrerá se um caminho JSON inválido for usado no elemento JSONPath da
política. Por exemplo, se um payload JSON não tiver o objeto Name,
mas você especificar Name como o caminho na política, esse erro ocorrerá. |
build |
steps.extractvariables.JsonPathParsingFailure |
500 | Esse erro ocorre quando a política não consegue analisar um caminho JSON e
extrair dados da variável de fluxo especificada no elemento Source. Normalmente, isso
acontece se a variável de fluxo especificada no elemento Source não existir no fluxo atual. |
build |
steps.extractvariables.SetVariableFailed |
500 | Esse erro ocorre se a política não puder definir o valor como uma variável. O erro geralmente acontece se você tentar atribuir valores a diversas variáveis com nomes que começam com as mesmas palavras em um formato aninhado separado por ponto. | build |
steps.extractvariables.SourceMessageNotAvailable |
500 | Esse erro ocorrerá se a variável message
especificada no elemento Source da política
for:
|
build |
steps.extractvariables.UnableToCast |
500 | Esse erro ocorre se a política não conseguiu converter o valor extraído para uma variável. Normalmente, isso ocorre quando você tenta definir o valor de um tipo de dados para uma variável de outro tipo de dados. | build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Correção |
|---|---|---|
NothingToExtract |
Se a política não tiver nenhum dos elementos URIPath, QueryParam,
Header, FormParam, XMLPayload ou JSONPayload,
a implantação do proxy da API falha, porque não há nada para extrair. |
build |
NONEmptyPrefixMappedToEmptyURI |
Esse erro ocorre se a política tiver um prefixo definido no elemento
Namespace no elemento XMLPayload, mas nenhum URI será
definido. |
build |
DuplicatePrefix |
Esse erro ocorre se a política tiver o mesmo prefixo definido mais de
uma vez no elemento Namespace no elemento XMLPayload. |
build |
NoXPathsToEvaluate |
Se a política não tiver o elemento XPath dentro do
elemento XMLPayload, a implantação do proxy de API falhará com este erro.
|
build |
EmptyXPathExpression |
Se a política tiver uma expressão XPath vazia no elemento XMLPayload,
a implantação do proxy da API falhará. |
build |
NoJSONPathsToEvaluate |
Se a política não tiver o elemento JSONPath dentro do
elemento JSONPayload, a implantação do proxy de API falhará com este erro. |
build |
EmptyJSONPathExpression |
Se a política tiver uma expressão XPath vazia no
elemento XMLPayload, a implantação do proxy da API falhará. |
build |
MissingName |
Se a política não tiver o atributo name em nenhum dos elementos
da política, como QueryParam, Header, FormParam ou
Variable, quando necessário, a implantação do proxy da API falhará. |
build |
PatternWithoutVariable |
Se a política não tiver uma variável especificada no elemento Pattern,
a implantação do proxy de API falhará. O elemento Pattern requer o nome da
variável em que os dados extraídos serão armazenados. |
build |
CannotBeConvertedToNodeset |
Se a política tiver uma expressão XPath em que o tipo Variable
é definido como nodeset,
mas a expressão não pode ser convertida em nodeset, a implantação do proxy de API falhará. |
build |
JSONPathCompilationFailed |
A política não conseguiu compilar um caminho JSON especificado. | |
InstantiationFailed |
Não foi possível instanciar a política. | |
XPathCompilationFailed |
Se o prefixo ou o valor usado no elemento XPath não fizer parte de nenhum dos
namespaces declarados na política, a implantação do proxy de API
falhará. |
build |
InvalidPattern |
Se a definição de elemento Pattern for inválida em qualquer um dos elementos como URIPath,
QueryParam, Header, FormParam, XMLPayload
ou JSONPayload na política, a implantação do
proxy de API falhará.
|
build |
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "SourceMessageNotAvailable" |
extractvariables.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | extractvariables.EV-ParseJsonResponse.failed = true |
Exemplo de resposta de erro
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
Exemplo de regra de falha
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>
Política GenerateJWS
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
steps.jws.GenerationFailed |
401 | A política não pôde gerar o JWS. |
steps.jws.InsufficientKeyLength |
401 | Para uma chave menor que 32 bytes para o algoritmo HS256 |
steps.jws.InvalidClaim |
401 | Para uma reivindicação ausente ou incompatibilidade de reivindicação ou um cabeçalho ou cabeçalho ausente. |
steps.jws.InvalidCurve |
401 | A curva especificada pela chave não é válida para o algoritmo de curva elíptica. |
steps.jws.InvalidJsonFormat |
401 | JSON inválido encontrado no cabeçalho JWS. |
steps.jws.InvalidPayload |
401 | O payload do JWS é inválido. |
steps.jws.InvalidSignature |
401 | <DetachedContent> é omitido e o JWS tem um payload de conteúdo separado. |
steps.jws.KeyIdMissing |
401 | A política "Verificar" usa um JWKS como uma fonte para chaves públicas, mas o JWS assinado não
inclui uma propriedade kid no cabeçalho. |
steps.jws.KeyParsingFailed |
401 | Não foi possível analisar a chave pública com base nas informações de chave fornecidas. |
steps.jws.MissingPayload |
401 | O payload do JWS está ausente. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Ocorre quando a JWS omite o cabeçalho do algoritmo. |
steps.jws.SigningFailed |
401 | Em GenerateJWS, para uma chave menor que o tamanho mínimo dos algoritmos HS384 ou HS512 |
steps.jws.UnknownException |
401 | Ocorreu uma exceção desconhecida. |
steps.jws.WrongKeyType |
401 | Tipo incorreto de chave especificado. Por exemplo, se você especificar uma chave RSA para um algoritmo de curva elíptica ou uma chave de curva para um algoritmo RSA. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Erro de nome | Ocorre quando |
|---|---|
InvalidAlgorithm |
Os únicos valores válidos são RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Outros erros de implantação possíveis. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas as políticas de JWS definem a mesma variável em caso de falha. | jws.JWS-Policy.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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>Política GenerateJWT
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falhas para lidar com elas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Ocorre quando a política de verificação tem vários algoritmos. |
steps.jwt.AlgorithmMismatch |
401 | O algoritmo especificado na política de geração não corresponde ao esperado na política de verificação. Os algoritmos especificados precisam corresponder. |
steps.jwt.FailedToDecode |
401 | A política não conseguiu decodificar o JWT. É possível que o JWT esteja corrompido. |
steps.jwt.GenerationFailed |
401 | A política não pôde gerar o JWT. |
steps.jwt.InsufficientKeyLength |
401 | Para uma chave com menos de 32 bytes para o algoritmo HS256, menos de 48 bytes para o algoritmo HS386 e menos de 64 bytes para o algoritmo HS512. |
steps.jwt.InvalidClaim |
401 | Para uma reivindicação ausente ou incompatibilidade de reivindicação ou um cabeçalho ou cabeçalho ausente. |
steps.jwt.InvalidCurve |
401 | A curva especificada pela chave não é válida para o algoritmo de curva elíptica. |
steps.jwt.InvalidJsonFormat |
401 | JSON inválido encontrado no cabeçalho ou payload. |
steps.jwt.InvalidToken |
401 | Esse erro ocorre quando a verificação de assinatura do JWT falha. |
steps.jwt.JwtAudienceMismatch |
401 | A declaração de público falhou na verificação do token. |
steps.jwt.JwtIssuerMismatch |
401 | A declaração do emissor falhou na verificação do token. |
steps.jwt.JwtSubjectMismatch |
401 | A declaração do assunto falhou na verificação do token. |
steps.jwt.KeyIdMissing |
401 | A política "Verificar" usa um JWKS como uma origem para chaves públicas, mas o JWT assinado não
inclui uma propriedade kid no cabeçalho. |
steps.jwt.KeyParsingFailed |
401 | Não foi possível analisar a chave pública com base nas informações de chave fornecidas. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Ocorre quando o JWT não contém cabeçalho de algoritmo. |
steps.jwt.NoMatchingPublicKey |
401 | A política de verificação usa uma JWKS como fonte para chaves públicas, mas o kid no JWT assinado não está listado na JWKS. |
steps.jwt.SigningFailed |
401 | Em GenerateJWT, para uma chave menor que o tamanho mínimo para os algoritmos HS384 ou HS512 |
steps.jwt.TokenExpired |
401 | A política tenta verificar um token expirado. |
steps.jwt.TokenNotYetValid |
401 | O token ainda não é válido. |
steps.jwt.UnhandledCriticalHeader |
401 | Um cabeçalho encontrado pela política de verificação de JWT no cabeçalho crit não está listado em KnownHeaders. |
steps.jwt.UnknownException |
401 | Ocorreu uma exceção desconhecida. |
steps.jwt.WrongKeyType |
401 | Tipo incorreto de chave especificado. Por exemplo, se você especificar uma chave RSA para um algoritmo de curva elíptica ou uma chave de curva para um algoritmo RSA. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidNameForAdditionalClaim |
A implantação falhará se a declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> for um dos seguintes nomes registrados: kid, iss, sub, aud, iat, exp, nbf ou jti.
|
build |
InvalidTypeForAdditionalClaim |
Se a declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> não for do tipo string, number, boolean ou map, a implantação falhará.
|
build |
MissingNameForAdditionalClaim |
Se o nome da declaração não for especificado no elemento filho <Claim> do elemento <AdditionalClaims>, a implantação falhará.
|
build |
InvalidNameForAdditionalHeader |
Esse erro ocorre quando o nome da declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> é alg ou typ.
|
build |
InvalidTypeForAdditionalHeader |
Se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> não for do tipo string, number, boolean ou map, a implantação falhará.
|
build |
InvalidValueOfArrayAttribute |
Esse erro ocorre quando o valor do atributo de matriz no elemento filho <Claim> do elemento <AdditionalClaims> não está definido como true ou false.
|
build |
InvalidConfigurationForActionAndAlgorithm |
Se o elemento <PrivateKey> for usado com algoritmos da família HS ou
o elemento <SecretKey> for usado com algoritmos da família RSA, a
implantação falhará.
|
build |
InvalidValueForElement |
Se o valor especificado no elemento <Algorithm> não for compatível, a implantação falhará.
|
build |
MissingConfigurationElement |
Esse erro ocorrerá se o elemento <PrivateKey> não for usado com algoritmos da família RSA ou se o elemento <SecretKey> não for usado com algoritmos da família HS.
|
build |
InvalidKeyConfiguration |
Se o elemento filho <Value> não estiver definido nos elementos <PrivateKey> ou <SecretKey>, a implantação falhará.
|
build |
EmptyElementForKeyConfiguration |
Se o atributo de referência do elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> estiver vazio ou não especificado, a implantação falhará.
|
build |
InvalidVariableNameForSecret |
Esse erro ocorrerá se o nome da variável de fluxo especificado no atributo de referência do elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> não contiver o prefixo particular (private.).
|
build |
InvalidSecretInConfig |
Esse erro ocorre se o elemento filho <Value> dos elementos <PrivateKey>
ou <SecretKey> não contiver o prefixo particular (private.).
|
build |
InvalidTimeFormat |
Se o valor especificado no elemento <NotBefore> não usar um formato compatível, a implantação falhará.
|
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWT.failed |
Todas as políticas do JWT definem a mesma variável em caso de falha. | JWT.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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>
Política de destaque de Java
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.javacallout.ExecutionError |
500 | Ocorre quando o código Java gera uma exceção ou retorna nulo durante a execução de uma política JavaCallout. | build |
Erros de implantação
Esses erros podem ocorrer quando o proxy que contém a política é implantado.
| Nome do erro | String de falha | Status HTTP | Ocorre quando |
|---|---|---|---|
ResourceDoesNotExist |
Resource with name
[name] and type [type] does not exist |
N/D | O arquivo especificado no elemento <ResourceURL> não existe. |
JavaCalloutInstantiationFailed |
Failed to instantiate the JavaCallout Class [classname] |
N/D | O arquivo de classe especificado no elemento <ClassName> não está no jar. |
IncompatibleJavaVersion |
Failed to load java class [classname] definition due to - [reason] |
N/A | Consulte string de falha. Consulte também Software e versões compatíveis. |
JavaClassNotFoundInJavaResource |
Failed to find the ClassName in java resource [jar_name] -
[class_name] |
N/D | Consulte string de falha. |
JavaClassDefinitionNotFound |
Failed to load java class [class_name] definition due to - [reason] |
N/D | Consulte string de falha. |
NoAppropriateConstructor |
No appropriate constructor found in JavaCallout class [class_name] |
N/D | Consulte string de falha. |
NoResourceForURL |
Could not locate a resource with URL [string] |
N/D | Consulte string de falha. |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "ExecutionError" |
javacallout.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | javacallout.JC-GetUserData.failed = true |
Exemplo de resposta de erro
{ "fault":{ "faultstring":"Failed to execute JavaCallout. [policy_name]", "detail":{ "errorcode":"javacallout.ExecutionError" } } }
Exemplo de regra de falha
<FaultRule name="JavaCalloutFailed"> <Step> <Name>AM-JavaCalloutError</Name> </Step> <Condition>(fault.name Matches "ExecutionError") </Condition> </FaultRule>
Política de 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>
Política JSONThreatProtection
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.jsonthreatprotection.ExecutionFailed |
500 | The JSONThreatProtection policy can throw many different types of ExecutionFailed errors. Most of these errors occur when a specific threshold set in the policy is exceeded. These types of errors include: object entry name length, object entry count, array element count, container depth, string string value length. This error also occurs when the payload contains an invalid JSON object. | build |
steps.jsonthreatprotection.SourceUnavailable |
500 |
This error occurs if the message
variable specified in the <Source> element is either:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 |
This error occurs if the <Source> element is set to a variable which
is not of type
message.
|
build |
Deployment errors
None.
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 "SourceUnavailable" |
jsonattack.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | jsonattack.JTP-SecureRequest.failed = true |
Example error response
{
"fault": {
"faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.jsonthreatprotection.ExecutionFailed"
}
}
}Example fault rule
<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>
Os tipos de políticas JSONThreatProtection definem os seguintes códigos de erro:
Política JSONtoXML
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.jsontoxml.ExecutionFailed |
500 | O payload de entrada (JSON) está vazio ou a entrada (JSON) transmitida para a política JSON para XML é inválida ou está malformada. | build |
steps.jsontoxml.InCompatibleTypes |
500 | Esse erro ocorrerá se o tipo da variável definido no elemento <Source> e o
elemento <OutputVariable> não forem os mesmos. É obrigatório que o tipo das
variáveis contidas no elemento <Source> e no elemento <OutputVariable> seja
igual. Os tipos válidos são message e string. |
build |
steps.jsontoxml.InvalidSourceType |
500 | Este erro ocorrerá se o tipo da variável usado para definir o elemento <Source>
for inválido. Os tipos válidos de variável são message e string. |
build |
steps.jsontoxml.OutputVariableIsNotAvailable |
500 | Esse erro ocorrerá se a variável especificada no elemento <Source> da política JSON para
XML for do tipo string e o elemento <OutputVariable> não for definido.
O elemento <OutputVariable> é obrigatório quando a variável definida no elemento <Source>
é do tipo string. |
build |
steps.jsontoxml.SourceUnavailable |
500 |
Esse erro ocorrerá se a variável message
especificada no elemento <Source> da política JSON para XML se enquadrar em uma destas situações:
|
build |
Erros de implantação
Nenhum.
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "SourceUnavailable" |
jsontoxml.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | jsontoxml.JSON-to-XML-1.failed = true |
Exemplo de resposta de erro
{
"fault": {
"faultstring": "JSONToXML[JSON-to-XML-1]: Source xyz is not available",
"detail": {
"errorcode": "steps.json2xml.SourceUnavailable"
}
}
}Exemplo de regra de falha
<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>Política KeyValueMapOperations
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.keyvaluemapoperations.SetVariableFailed |
500 |
This error occurs if you try to retrieve a value from an encrypted key value map and set
the value to a variable whose name does not have the prefix |
build |
steps.keyvaluemapoperations.UnsupportedOperationException |
500 |
This error occurs if the |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidIndex |
If the index attribute specified in the <Get> element of Key Value Map Operations policy is
zero or a negative number, then the deployment of the API proxy fails. The index starts from
1, so an index of zero or negative integer is considered as invalid.
|
build |
KeyIsMissing |
This error occurs if the <Key> element is completely missing or <Parameter> element is
missing within <Key> element underneath the <Entry> of the <InitialEntries> element
of the Key Value Map Operations policy.
|
build |
ValueIsMissing |
This error occurs if the <Value> element is missing underneath the <Entry> element of
the <InitialEntries> element of the Key Value Map Operations policy. |
build |
Política LDAP
Esta política usa os seguintes códigos de erro:
| Código do erro | A mensagem |
|---|---|
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. |
Política MessageLogging
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
500 | Consulte string de falha. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
InvalidProtocol |
A implantação da política MessageLogging poderá falhar com esse erro se o protocolo
especificado no elemento <Protocol> não for válido. Os protocolos válidos são TCP e UDP.
Para enviar mensagens syslog por TLS/SSL, apenas TCP é aceito. |
build |
InvalidPort |
A implantação da política MessageLogging poderá falhar com esse erro se o número da porta
não for especificado no elemento <Port> ou se não for válido. O número da porta precisa ser
um número inteiro maior que zero. |
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | messagelogging.ML-LogMessages.failed = true |
Exemplo de resposta de erro
{
"fault":{
"detail":{
"errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
},
"faultstring":"Execution failed"
}
}Exemplo de regra de falha
<FaultRule name="MessageLogging">
<Step>
<Name>ML-LogMessages</Name>
<Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
</Step>
<Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>Política OASValidation
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | |
|---|---|---|---|
steps.oasvalidation.Failed |
500 | O corpo da mensagem da solicitação não pode ser validado de acordo com a especificação OpenAPI fornecida. | |
steps.oasvalidation.SourceMessageNotAvailable |
500 |
A variável especificada no elemento |
|
steps.oasvalidation.NotMessageVariable |
500 |
O elemento |
build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa | |
|---|---|---|
ResourceDoesNotExist |
A especificação OpenAPI mencionada no elemento <OASResource> não existe.
|
|
ResourceCompileFailed |
A especificação OpenAPI incluída na implantação contém erros que impedem que ela seja compilada. Geralmente, isso indica que a especificação não é uma Especificação OpenAPI 3.0 bem formada. | |
BadResourceURL |
A especificação OpenAPI referenciada no elemento <OASResource> não pode ser processada. Isso poderá ocorrer se o arquivo não for JSON ou YAML ou se o
URL do arquivo não estiver especificado corretamente.
|
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "ResourceDoesNotExist" |
oasvalidation.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oasvalidation.myoaspolicy.failed = true |
Política PopulateCache
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status do HTTP | Ocorre quando |
|---|---|---|
policies.populatecache.EntryCannotBeCached |
500 | Uma entrada não pode ser armazenada em cache. O objeto de mensagem em cache não é uma instância de uma classe que é serializável. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
InvalidCacheResourceReference |
Esse erro ocorrerá se o elemento <CacheResource> na política PopulateCache estiver definido como um nome que não exista no ambiente em que o proxy de API está sendo implantado. |
build |
CacheNotFound |
O cache especificado no elemento <CacheResource> não existe. |
build |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "EntryCannotBeCached" |
populatecache.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | populatecache.POP-CACHE-1.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "[entry] can not be cached. Only serializable entries are cached.", "detail": { "errorcode": "steps.populatecache.EntryCannotBeCached" } } }
Exemplo de regra de falha
<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>Política LookupCache
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element is set to a
name which does not exist in the environment where the API proxy is being deployed. |
build |
InvalidTimeout |
If the <CacheLookupTimeoutInSeconds> element is set to
a negative number, then the deployment of the API proxy fails. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A
Política InvalidateCache
This section describes the error messages and flow variables that are set when this policy triggers an error. This information is important to know if you are developing fault rules for a proxy. To learn more, see What you need to know about policy errors and Handling faults.
Error code prefix
N/A
Runtime errors
This policy does not throw any runtime errors.
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCacheResourceReference |
This error occurs if the <CacheResource> element in the InvalidateCache policy is set
to a name that does not exist in the environment where the API proxy is being deployed. |
build |
CacheNotFound |
This error occurs if the specific cache mentioned in the error message has not been created on a specific Message Processor component. | build |
Fault variables
N/A
Example error response
N/A
Política ResponseCache
Nesta seção, descrevemos as mensagens de erro e as variáveis de fluxo que são definidas quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para um proxy. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Prefixo do código de erro
N/A
Erros de execução
Essa política não gera erros de ambiente de execução.
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidTimeout |
Se o
elemento <CacheLookupTimeoutInSeconds> da política ResponseCache estiver definido como um número negativo,
a implantação do proxy da API falhará. |
build |
InvalidCacheResourceReference |
Esse erro ocorre quando o elemento <CacheResource> em uma política ResponseCache está definido como um
nome que não existe no ambiente em que o proxy da API está sendo implantado. |
build |
ResponseCacheStepAttachmentNotAllowedReq |
Este erro ocorre quando a mesma política ResponseCache está anexada a vários caminhos de solicitação em qualquer fluxo de um proxy de API. | build |
ResponseCacheStepAttachmentNotAllowedResp |
Esse erro ocorre quando a mesma política do ResponseCache está anexada a vários caminhos de resposta em qualquer fluxo de um proxy de API. | build |
InvalidMessagePatternForErrorCode |
Esse erro ocorre quando o elemento <SkipCacheLookup> ou <SkipCachePopulation>
em uma política ResponseCache tem uma condição inválida. |
build |
CacheNotFound |
Esse erro ocorre quando o cache específico mencionado na mensagem de erro não tiver sido criado em um componente de processador de mensagens específico. | build |
Variáveis de falha
N/A
Exemplo de resposta de erro
N/A
política OAuthV2
Esta seção descreve os códigos de falha e as mensagens de erro que são retornadas e as variáveis de falha definidas pelo Edge quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Lançada por operações |
|---|---|---|---|
steps.oauth.v2.access_token_expired |
401 | O token de acesso expirou. |
VerifyAccessToken |
steps.oauth.v2.access_token_not_approved |
401 | O token de acesso foi revogado. | VerifyAccessToken |
steps.oauth.v2.apiresource_doesnot_exist |
401 | O recurso solicitado não existe nos produtos de API associados ao token de acesso. | VerifyAccessToken |
steps.oauth.v2.FailedToResolveAccessToken |
500 | A política esperada encontrou um token de acesso em uma variável especificada no elemento
<AccessToken>, mas não foi possível resolver a variável. |
GenerateAccessToken |
steps.oauth.v2.FailedToResolveAuthorizationCode |
500 | A política esperada encontrou um código de autorização em uma variável especificada no elemento
<Code>, mas não foi possível resolver a variável. |
GenerateAuthorizationCode |
steps.oauth.v2.FailedToResolveClientId |
500 | A política esperada encontra o ID do cliente em uma variável especificada no elemento
<ClientId>, mas não foi possível resolver a variável. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.FailedToResolveRefreshToken |
500 | A política esperada encontrou um token de atualização em uma variável especificada no elemento
<RefreshToken>, mas não foi possível resolver a variável. |
RefreshAccessToken |
steps.oauth.v2.FailedToResolveToken |
500 | A política esperada encontrou um token em uma variável especificada no elemento
<Tokens>, mas não foi possível resolver a variável. |
ValidateToken |
steps.oauth.v2.InsufficientScope |
403 | O token de acesso apresentado na solicitação tem um escopo que não corresponde ao escopo especificado na política de verificação de tokens de acesso. Para saber mais sobre o escopo, consulte Como trabalhar com escopos do OAuth2. | VerifyAccessToken |
steps.oauth.v2.invalid_access_token |
401 | O token de acesso enviado do cliente é inválido. | VerifyAccessToken |
steps.oauth.v2.invalid_client |
401 |
Esse nome de erro é retornado quando a propriedade Observação: é recomendável alterar as condições
da regra de falha atual para capturar os nomes |
GenerateAccessToken RefreshAccessToken |
steps.oauth.v2.InvalidRequest |
400 | Esse nome é usado para vários tipos diferentes de erro, geralmente para parâmetros ausentes
ou incorretos enviados na solicitação. Se <GenerateResponse> estiver
definido como false, use variáveis de falha (descritas abaixo) para recuperar detalhes sobre
o erro, como o nome e a causa da falha. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
steps.oauth.v2.InvalidAccessToken |
401 | O cabeçalho de autorização não tem a palavra "Bearer", que é obrigatória. Por
exemplo: Authorization: Bearer your_access_token |
VerifyAccessToken |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 |
O proxy da API não está no produto associado ao token de acesso. Dicas: verifique se o produto associado ao token de acesso está configurado corretamente. Por exemplo, se você usar caracteres curinga em caminhos de recursos, verifique se os caracteres curinga estão sendo usados corretamente. Consulte Criar produtos de API para mais detalhes. Veja também esta postagem da comunidade da Apigee para mais orientações sobre as causas desse erro. |
VerifyAccessToken |
steps.oauth.v2.InvalidClientIdentifier |
500 |
Esse nome de erro é retornado quando a propriedade |
GenerateAccessToken |
steps.oauth.v2.InvalidParameter |
500 | A política precisa especificar um token de acesso ou um código de autorização, mas não ambos. | GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.InvalidTokenType |
500 | O elemento <Tokens>/<Token> requer que você especifique o tipo de
token (por exemplo, refreshtoken). Se o cliente transmitir o tipo errado, esse
erro será gerado. |
ValidateToken InvalidateToken |
steps.oauth.v2.MissingParameter |
500 | O tipo de resposta é token, mas nenhum tipo de concessão é especificado. |
GenerateAuthorizationCode GenerateAccessTokenImplicitGrant |
steps.oauth.v2.UnSupportedGrantType |
500 |
O cliente especificou um tipo de concessão que não é compatível com a política (não listada no elemento <SupportedGrantTypes>). Observação: atualmente, há um bug em que os erros de tipo de concessão não compatíveis não são gerados corretamente. Se ocorrer um erro de tipo de concessão incompatível, o proxy não entrará no fluxo de erros, como esperado. |
GenerateAccessToken GenerateAuthorizationCode GenerateAccessTokenImplicitGrant RefreshAccessToken |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa |
|---|---|
InvalidValueForExpiresIn |
Para o elemento |
InvalidValueForRefreshTokenExpiresIn |
Para o elemento <RefreshTokenExpiresIn>, os valores válidos são números inteiros
positivos e -1. |
InvalidGrantType |
Um tipo de concessão inválido é especificado no elemento
<SupportedGrantTypes>. Consulte a referência da política para ver uma lista de tipos válidos. |
ExpiresInNotApplicableForOperation |
Verifique se as operações especificadas no elemento <Operations> aceitam a expiração. Por exemplo, a operação VerifyToken não. |
RefreshTokenExpiresInNotApplicableForOperation |
Verifique se as operações especificadas no elemento <Operations> são compatíveis com a expiração do token de atualização. Por exemplo, a operação VerifyToken não. |
GrantTypesNotApplicableForOperation |
Verifique se os tipos de concessão especificados em <SupportedGrantTypes> são compatíveis com a operação especificada. |
OperationRequired |
Especifique uma operação nessa política usando o elemento
Observação: se o elemento |
InvalidOperation |
Especifique uma operação válida nesta política usando o
elemento Observação: se o elemento |
TokenValueRequired |
Especifique um valor de token <Token> no
elemento <Tokens>. |
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "InvalidRequest" |
oauthV2.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.GenerateAccesstoken.failed = true |
oauthV2.policy_name.fault.name |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.GenerateAccesstoken.fault.name = InvalidRequest
Observação: para a operação VerifyAccessToken, o nome da falha inclui este sufixo. |
oauthV2.policy_name.fault.cause |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.GenerateAccesstoken.cause = Required param : grant_type |
Exemplo de resposta de erro
Essas respostas serão enviadas de volta ao cliente se o elemento <GenerateResponse>
for verdadeiro.
Se <GenerateResponse> for verdadeiro, a política retornará erros
nesse formato para operações que geram tokens e códigos. Para uma lista completa, consulte a
Referência de resposta
de erro HTTP do OAuth.
{"ErrorCode" : "invalid_client", "Error" :"ClientId is Invalid"}Se <GenerateResponse> for verdadeiro, a política retornará erros
nesse formato para verificar e validar operações. Para uma lista completa, consulte a Referência de resposta
de erro HTTP do OAuth.
{ { "fault":{ "faultstring":"Invalid Access Token", "detail":{ "errorcode":"keymanagement.service.invalid_access_token" } } }
Exemplo de regra de falha
<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>Política GetOAuthV2Info
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. The error names shown below are the strings
that are assigned to the fault.name variable when an error occurs. See the Fault
variables section below for more details.
| Fault code | HTTP status | Cause |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | The access token sent to the policy is expired. |
steps.oauth.v2.authorization_code_expired |
500 | The authorization code sent to the policy is expired. |
steps.oauth.v2.invalid_access_token |
500 | The access token sent to the policy is invalid. |
steps.oauth.v2.invalid_client-invalid_client_id |
500 | The client ID sent to the policy is invalid. |
steps.oauth.v2.invalid_refresh_token |
500 | The refresh token sent to the policy is invalid. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
500 | The authorization code sent to the policy is invalid. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Please see this Apigee Community post for information about troubleshooting this error. |
steps.oauth.v2.refresh_token_expired |
500 | The refresh token sent to the policy is expired. |
Deployment errors
Refer to the message reported in the UI for information about deployment errors.
Fault variables
These variables are set when this policy triggers an error at runtime.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
Example error response
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
Example fault rule
<FaultRule name="OAuthV2 Faults">
<Step>
<Name>AM-InvalidClientIdResponse</Name>
</Step>
<Condition>(fault.name = "invalid_client-invalid_client_id")</Condition>
</FaultRule>Política SetOAuthV2Info
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 |
|---|---|---|
steps.oauth.v2.access_token_expired |
500 | The access token sent to the policy is expired. |
steps.oauth.v2.invalid_access_token |
500 | The access token sent to the policy is invalid. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Please see this Apigee Community post for information about troubleshooting this error. |
Deployment errors
Refer to the message reported in the UI for information about deployment errors.
Fault variables
These variables are set when this policy triggers an error at runtime.
| Variables | Where | Example |
|---|---|---|
fault.name="fault_name" |
fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name is the user-specified name of the policy that threw the fault. | oauthV2.SetTokenInfo.cause = Invalid Access Token |
Example error response
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Example fault rule
<FaultRule name=SetOAuthV2Info Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
<Condition>(fault.name = "invalid_access_token")</Condition>
</Step>
<Condition>(oauthV2.failed = true) </Condition>
</FaultRule>Política DeleteOAuthV2Info
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
steps.oauth.v2.invalid_access_token |
401 | O token de acesso enviado para a política é inválido. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
401 | O código de autorização enviado para a política é inválido. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | Consulte esta postagem da comunidade da Apigee para informações sobre como solucionar esse erro. |
Erros de implantação
Consulte a mensagem relatada na IU para informações sobre erros de implantação.
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "invalid_access_token" |
oauthV2.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.DeleteTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token |
oauthv2.policy_name.fault.cause |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.DeleteTokenInfo.cause = Invalid Access Token |
Exemplo de resposta de erro
{
"fault": {
"faultstring": "Invalid Access Token",
"detail": {
"errorcode": "keymanagement.service.invalid_access_token"
}
}
}Exemplo de regra de falha
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
<Step>
<Name>AM-InvalidTokenResponse</Name>
</Step>
<Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>Política do OAuth v1.0a
O tipo de política OAuthV1 define os códigos de erro a seguir.
Para códigos de erro HTTP relacionados a OAuth, consulte a referência de resposta de erro HTTP OAuth.
| Código do erro | A mensagem |
|---|---|
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} |
Política GetOAuthV1Info
Nenhum código de erro foi especificado para a política "Ver informações do OAuth v1.0a".
Política DeleteOAuthV1Info
Se for bem-sucedida, a política retornará um status 200.
Em caso de falha, a política retorna 404 e gera uma saída semelhante à seguinte (dependendo se você está excluindo um token de acesso, token de solicitação ou verificador.):
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"}}}
Política 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>
Política de cotas
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>Política ResetQuota
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.resetquota.InvalidRLPolicy |
500 | The Quota policy specified in the <Quota> element of the Reset Quota policy
is not defined in the API proxy and thus is not available during the flow. The <Quota>
element is mandatory and identifies the target Quota policy whose counter should be updated
through the Reset Quota policy. |
build |
policies.resetquota.FailedToResolveAllowCountRef |
N/A | The reference to the variable containing the allow count in the <Allow> element
of the policy cannot be resolved to a value. This element is mandatory and specifies the amount
to decrease the quota counter. |
build |
policies.resetquota.FailedToResolveRLPolicy |
500 | The variable referenced by the ref attribute in the <Quota> element
cannot be resolved. |
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
InvalidCount |
If the count value specified in the <Allow> element of the Reset Quota Policy is not an integer,
then the deployment of the API proxy fails.
|
build |
Política RaiseFault
Esta seção descreve os códigos e mensagens de erro retornados e as variáveis de falha que são definidos pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
steps.raisefault.RaiseFault |
500 | Consulte string de falha. |
Erros de implantação
Nenhum.
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name = "RaiseFault" |
raisefault.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que isso causou um erro. | raisefault.RF-ThrowError.failed = true |
Exemplo de resposta de erro
{ "fault":{ "detail":{ "errorcode":"steps.raisefault.RaiseFault" }, "faultstring":"Raising fault. Fault name: [name]" } }
Política RegularExpressionProtection
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha
definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se
você está desenvolvendo regras de falha para lidar com falhas. Se você quiser capturar um erro e criar seu próprio
erro personalizado, defina o atributo continueOnError="true" no elemento raiz da política.
Para mais informações, consulte
O que você precisa saber sobre erros de política e Como lidar
com falhas.
Os erros retornados das políticas do Edge seguem um formato consistente, conforme descrito na Referência do código de erro.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código do erro | Mensagem |
|---|---|
| ExecutionFailed | Falha ao executar a StepDefinition de RegularExpressionProtection {0}. Motivo: {1} |
| InstantiationFailed | Falha ao instanciar CommonExpressionProtection StepDefinition {0} |
| NonMessageVariable | A variável {0} não resulta em uma mensagem |
| SourceMessageNotAvailable | {0} mensagem não está disponível para a StepDefinition da RegularExpressionProtection {1} |
| ThreatDetected | Ameaça de expressão regular detectada em {0}: regex: {1} entrada: {2} |
| VariableResolutionFailed | Falha ao resolver a variável {0} |
Erros de implantação
| Código do erro | Mensagem | Correção |
|---|---|---|
| CannotBeConvertedToNodeset | RegularExpressionProtection: {0} o resultado de xpath {1} não pode ser convertido em nodeset. Contexto {2} | build |
| DuplicatePrefix | RegularExpressionProtection {0}: prefixo duplicado {1} | build |
| EmptyJSONPathExpression | RegularExpressionProtection {0}: expressão JSONPath vazia | build |
| EmptyXPathExpression | RegularExpressionProtection {0}: expressão XPath vazia | build |
| InvalidRegularExpression | RegularExpressionProtection {0}: expressão regular inválida {1}, contexto {2} | build |
| JSONPathCompilationFailed | RegularExpressionProtection {0}: falha ao compilar jsonpath {1}. Contexto {2} | build |
| NONEmptyPrefixMappedToEmptyURI | RegularExpressionProtection {0}: o prefixo não vazio {1} não pode ser mapeado para o URI vazio | build |
| NoPatternsToEnforce | RegularExpressionProtection: {0} não há padrões a serem aplicados em {1} | build |
| NothingToEnforce | RegularExpressionProtection {0}: pelo menos um dos URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload é obrigatório. | build |
| XPathCompilationFailed | RegularExpressionProtection {0}: falha ao compilar o xpath {1}. Contexto {2} | build |
Variáveis de falha
Essas variáveis são definidas quando esta política aciona um erro. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela acima. | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |
Política SOAPMessageValidation
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Corrigir |
|---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable |
500 |
Esse erro ocorre se uma variável especificada no elemento
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
Esse erro ocorrerá se o elemento As variáveis do tipo Message representam solicitações e respostas HTTP completas. As variáveis integradas de fluxo do Edge |
build |
steps.messagevalidation.Failed |
500 | Esse erro ocorrerá se a política SOAPMessageValidation não validar o payload da mensagem de entrada no esquema XSD ou na definição WSDL. Isso também ocorrerá se houver JSON ou XML malformado na mensagem de payload. | build |
Erros na implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidResourceType |
O elemento <ResourceURL> na política SOAPMessageValidation é definido como um tipo de recurso
não compatível com a política.
|
build |
ResourceCompileFailed |
O script de recurso referenciado no elemento <ResourceURL> da política
SOAPMessageValidation contém um erro que o impede de compilar.
|
build |
RootElementNameUnspecified |
O elemento <Element> na política SOAPMessageValidation não contém o nome do elemento raiz. |
build |
InvalidRootElementName |
O elemento <Element> na política SOAPMessageValidation contém um nome de elemento raiz
que não adere a regras XML para nomeação de elemento válida. |
build |
Política SAMLAssertion
Esta seção descreve os códigos de falha e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Erro de nome | Causa | Correção |
|---|---|---|
SourceNotConfigured |
Um ou mais dos seguintes elementos da política de validação
de SAML não estão definidos ou vazios: <Source>, <XPath>,
<Namespaces>, <Namespace>.
|
build |
TrustStoreNotConfigured |
Se o elemento <TrustStore> estiver vazio ou não for especificado na política
ValidateSAMLAssertion, a implantação do proxy da API falhará.
Uma Trust Store válida é obrigatória.
|
build |
NullKeyStoreAlias |
Se o elemento filho <Alias> estiver vazio ou não for especificado no elemento <Keystore>
da política Generate SAML Assertion, a implantação do proxy da API
falhará. Um alias de keystore válido é obrigatório.
|
build |
NullKeyStore |
Se o elemento filho <Name> estiver vazio ou não especificado no elemento <Keystore>
da política GenerateSAMLAssertion, a implantação do proxy de API
falhará. Um nome válido de keystore é obrigatório.
|
build |
NullIssuer |
Se o elemento <Issuer> estiver vazio ou não for especificado na política Gerar Asserção
de SAML, a implantação do proxy da API falhará. Um
valor de <Issuer> válido é necessário
|
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha. O nome da falha é a última parte do código de falha. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
Para uma configuração de política de declaração SAML válida, o prefixo do erro é
ValidateSAMLAssertion. |
GenerateSAMLAssertion.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
Exemplo de regra de falha
<FaultRules>
<FaultRule name="invalid_saml_rule">
<Step>
<Name>invalid-saml</Name>
</Step>
<Condition>(GenerateSAMLAssertion.failed = "true")</Condition>
</FaultRule>
</FaultRules>Política ServiceCallout
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.servicecallout.ExecutionFailed |
500 |
This error can occur when:
|
build |
steps.servicecallout.RequestVariableNotMessageType |
500 | The Request variable specified in the policy is not of type Message. For example, if it's a string or other non-message type, you'll see this error. | build |
steps.servicecallout.RequestVariableNotRequestMessageType |
500 | The Request variable specified in the policy is not of type Request Message. For example, if it's a Response type, you'll see this error. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
URLMissing |
The <URL> element inside <HTTPTargetConnection>
is missing or empty. |
build |
ConnectionInfoMissing |
This error happens if the policy does not have an
<HTTPTargetConnection> or <LocalTargetConnection>
element. |
build |
InvalidTimeoutValue |
This error happens if the <Timeout> value is negative or zero. |
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 = "RequestVariableNotMessageType" |
servicecallout.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | servicecallout.SC-GetUserData.failed = true |
Example error response
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
Example fault rule
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType">
<Step>
<Name>AM-RequestVariableNotMessageType</Name>
</Step>
<Condition>(fault.name = "RequestVariableNotMessageType")</Condition>
</FaultRule>Política de Detenção de pico
Esta seção descreve os códigos e mensagens de erro retornados e as variáveis de falha que são definidos pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Corrigir |
|---|---|---|---|
policies.ratelimit.FailedToResolveSpikeArrestRate |
500 |
Esse erro ocorrerá se a referência à variável que contém a configuração de taxa
no elemento <Rate> não puder ser resolvida como um valor na política Spike
Arrest. Esse elemento é obrigatório e usado para especificar a taxa de parada de pico na
forma de intpm ou intps. |
build |
policies.ratelimit.InvalidMessageWeight |
500 |
Esse erro ocorrerá se o valor especificado para o elemento <MessageWeight> por meio
de uma variável de fluxo for inválido (um valor não inteiro). |
build |
policies.ratelimit.SpikeArrestViolation |
429 |
O limite de taxa foi excedido. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidAllowedRate |
Se a taxa de detenção de pico especificada no elemento <Rate> da Política
do Spike Arrest não é um número inteiro ou se a taxa não tem ps ou pm como um sufixo,
a implantação do proxy da API falhará. |
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "SpikeArrestViolation" |
ratelimit.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | ratelimit.SA-SpikeArrestPolicy.failed = true |
Exemplo de resposta de erro
Veja abaixo um exemplo de resposta de erro:
{ "fault":{ "detail":{ "errorcode":"policies.ratelimit.SpikeArrestViolation" }, "faultstring":"Spike arrest violation. Allowed rate : 10ps" } }
Exemplo de regra de falha
Veja abaixo um exemplo de regra de falha para lidar com uma falha 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>Política StatisticsCollector
Nesta seção, descrevemos as mensagens de erro e as variáveis de fluxo que são definidas quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para um proxy. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Nenhum.
Erros de implantação
| Nome do erro | Causa | Corrigir |
|---|---|---|
UnsupportedDatatype |
Se o tipo da variável especificado pelo atributo ref no elemento <Statistic>
da política do Coletor de estatísticas não for compatível, a implantação do proxy da API
falhará. Os tipos de dados compatíveis são string, integer,
float, long, double e boolean. |
build |
InvalidName |
Se o nome usado para referenciar os dados coletados para a variável especificada definida
no elemento <Statistic> da política do Coletor de estatísticas estiver em conflito com uma
variável definida pelo sistema, a implantação do proxy da API falhará. Algumas das variáveis conhecidas
definidas pelo sistema são organization e environment. |
build |
DatatypeMissing |
Se o tipo da variável especificado pelo atributo ref no elemento <Statistic>
da política do coletor de estatísticas estiver ausente, a implantação do proxy da API falhará. |
build |
Variáveis de falha
Nenhum.
Política VerifyAPIKey
Esta seção descreve os códigos de falha e as mensagens de erro que são retornadas e as variáveis de falha definidas pelo Edge quando essa política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa |
|---|---|---|
keymanagement.service.CompanyStatusNotActive |
401 | A empresa associada ao app Developer que tem a chave de API que você está usando tem um status inativo. Quando o status de uma Empresa é definido como inativo, você não pode acessar os desenvolvedores ou apps associados a ela. Um administrador da organização pode mudar o status de uma empresa usando a API de gerenciamento. Consulte Definir o status de uma empresa. |
keymanagement.service.DeveloperStatusNotActive |
401 |
O desenvolvedor que criou o app Developer que tem a chave de API que você está usando tem um status inativo. Quando o status de um desenvolvedor de apps é definido como inativo, todos os apps Developer criados por ele são desativados. Um usuário administrador com as devidas permissões, como administrador da organização, pode alterar o status do desenvolvedor das seguintes maneiras:
|
keymanagement.service.invalid_client-app_not_approved |
401 | O app Developer associado à chave de API foi revogado. Um app revogado não pode acessar nenhum produto de API e não pode invocar qualquer API gerenciada pelo Apigee Edge. Um administrador da organização pode mudar o status de um app Developer usando a API de gerenciamento. Consulte Aprovar ou revogar o app Developer. |
oauth.v2.FailedToResolveAPIKey |
401 | A política espera encontrar a chave de API em uma variável especificada no elemento <APIKey> da política. Esse erro ocorre quando a variável esperada não existe (ela não pode ser resolvida). |
oauth.v2.InvalidApiKey |
401 | Uma chave de API foi recebida pelo Edge, mas é inválida. Quando o Edge procura a chave no banco de dados, ela precisa corresponder exatamente àquela que foi enviada na solicitação. Se a API já funcionou antes, verifique se a chave não foi gerada novamente. Se a chave tiver sido gerada novamente, você verá este erro se tentar usar a chave antiga. Para mais detalhes, consulte Registrar apps e gerenciar chaves de API. |
oauth.v2.InvalidApiKeyForGivenResource |
401 | Uma chave de API foi recebida pelo Edge e é válida; no entanto, ela não corresponde a uma chave aprovada no app Developer associado ao seu proxy de API por meio de um produto. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Nome do erro | Causa |
|---|---|
SpecifyValueOrRefApiKey |
O elemento <APIKey> não tem um valor ou uma chave especificada. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "FailedToResolveAPIKey" |
oauthV2.policy_name.failed |
policy_name é o nome da política especificada pelo usuário que gerou a falha. | oauthV2.VK-VerifyAPIKey.failed = true |
Exemplos de respostas de erros
{
"fault":{
"faultstring":"Invalid ApiKey",
"detail":{
"errorcode":"oauth.v2.InvalidApiKey"
}
}
}{
"fault":{
"detail":{
"errorcode":"keymanagement.service.DeveloperStatusNotActive"
},
"faultstring":"Developer Status is not Active"
}
}Exemplo de regra de falha
<FaultRule name="FailedToResolveAPIKey">
<Step>
<Name>AM-FailedToResolveAPIKey</Name>
</Step>
<Condition>(fault.name Matches "FailedToResolveAPIKey") </Condition>
</FaultRule>Política VerifyJWS
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
steps.jws.AlgorithmInTokenNotPresentInConfiguration |
401 | Ocorre quando a política de verificação tem vários algoritmos |
steps.jws.AlgorithmMismatch |
401 | O algoritmo especificado no cabeçalho pela política de geração não corresponde ao esperado na política de verificação. Os algoritmos especificados precisam corresponder. |
steps.jws.ContentIsNotDetached |
401 | <DetachedContent> é especificado quando o JWS não contém um
payload de conteúdo separado. |
steps.jws.FailedToDecode |
401 | A política não conseguiu decodificar o JWS. A JWS está possivelmente corrompida. |
steps.jws.InsufficientKeyLength |
401 | Para uma chave menor que 32 bytes para o algoritmo HS256 |
steps.jws.InvalidClaim |
401 | Para uma reivindicação ausente ou incompatibilidade de reivindicação ou um cabeçalho ou cabeçalho ausente. |
steps.jws.InvalidCurve |
401 | A curva especificada pela chave não é válida para o algoritmo de curva elíptica. |
steps.jws.InvalidJsonFormat |
401 | JSON inválido encontrado no cabeçalho JWS. |
steps.jws.InvalidJws |
401 | Esse erro ocorre quando a verificação de assinatura do JWS falha. |
steps.jws.InvalidPayload |
401 | O payload do JWS é inválido. |
steps.jws.InvalidSignature |
401 | <DetachedContent> é omitido e o JWS tem um payload de conteúdo separado. |
steps.jws.KeyIdMissing |
401 | A política "Verificar" usa um JWKS como uma fonte para chaves públicas, mas o JWS assinado não
inclui uma propriedade kid no cabeçalho. |
steps.jws.KeyParsingFailed |
401 | Não foi possível analisar a chave pública com base nas informações de chave fornecidas. |
steps.jws.MissingPayload |
401 | O payload do JWS está ausente. |
steps.jws.NoAlgorithmFoundInHeader |
401 | Ocorre quando a JWS omite o cabeçalho do algoritmo. |
steps.jws.NoMatchingPublicKey |
401 | A política de verificação usa um JWKS como fonte para chaves públicas, mas o kid
no JWS assinado não está listado no JWKS. |
steps.jws.UnhandledCriticalHeader |
401 | Um cabeçalho encontrado pela política Verify JWS no cabeçalho crit não
está listado em KnownHeaders. |
steps.jws.UnknownException |
401 | Ocorreu uma exceção desconhecida. |
steps.jws.WrongKeyType |
401 | Tipo incorreto de chave especificado. Por exemplo, se você especificar uma chave RSA para um algoritmo de curva elíptica ou uma chave de curva para um algoritmo RSA. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
| Erro de nome | Ocorre quando |
|---|---|
InvalidAlgorithm |
Os únicos valores válidos são RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512, HS256, HS384, HS512. |
|
|
Outros erros de implantação possíveis. |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWS.failed |
Todas as políticas de JWS definem a mesma variável em caso de falha. | jws.JWS-Policy.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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>Política VerifyJWT
Nesta seção, descrevemos os códigos e as mensagens de erro retornados, além das variáveis de falha definidas pelo Edge quando esta política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falhas para lidar com elas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Ocorre quando |
|---|---|---|
steps.jwt.AlgorithmInTokenNotPresentInConfiguration |
401 | Ocorre quando a política de verificação tem vários algoritmos. |
steps.jwt.AlgorithmMismatch |
401 | O algoritmo especificado na política de geração não corresponde ao esperado na política de verificação. Os algoritmos especificados precisam corresponder. |
steps.jwt.FailedToDecode |
401 | A política não conseguiu decodificar o JWT. É possível que o JWT esteja corrompido. |
steps.jwt.GenerationFailed |
401 | A política não pôde gerar o JWT. |
steps.jwt.InsufficientKeyLength |
401 | Para uma chave com menos de 32 bytes para o algoritmo HS256, menos de 48 bytes para o algoritmo HS386 e menos de 64 bytes para o algoritmo HS512. |
steps.jwt.InvalidClaim |
401 | Para uma reivindicação ausente ou incompatibilidade de reivindicação ou um cabeçalho ou cabeçalho ausente. |
steps.jwt.InvalidCurve |
401 | A curva especificada pela chave não é válida para o algoritmo de curva elíptica. |
steps.jwt.InvalidJsonFormat |
401 | JSON inválido encontrado no cabeçalho ou payload. |
steps.jwt.InvalidToken |
401 | Esse erro ocorre quando a verificação de assinatura do JWT falha. |
steps.jwt.JwtAudienceMismatch |
401 | A declaração de público falhou na verificação do token. |
steps.jwt.JwtIssuerMismatch |
401 | A declaração do emissor falhou na verificação do token. |
steps.jwt.JwtSubjectMismatch |
401 | A declaração do assunto falhou na verificação do token. |
steps.jwt.KeyIdMissing |
401 | A política "Verificar" usa um JWKS como uma origem para chaves públicas, mas o JWT assinado não
inclui uma propriedade kid no cabeçalho. |
steps.jwt.KeyParsingFailed |
401 | Não foi possível analisar a chave pública com base nas informações de chave fornecidas. |
steps.jwt.NoAlgorithmFoundInHeader |
401 | Ocorre quando o JWT não contém cabeçalho de algoritmo. |
steps.jwt.NoMatchingPublicKey |
401 | A política de verificação usa uma JWKS como fonte para chaves públicas, mas o kid no JWT assinado não está listado na JWKS. |
steps.jwt.SigningFailed |
401 | Em GenerateJWT, para uma chave menor que o tamanho mínimo para os algoritmos HS384 ou HS512 |
steps.jwt.TokenExpired |
401 | A política tenta verificar um token expirado. |
steps.jwt.TokenNotYetValid |
401 | O token ainda não é válido. |
steps.jwt.UnhandledCriticalHeader |
401 | Um cabeçalho encontrado pela política de verificação de JWT no cabeçalho crit não está listado em KnownHeaders. |
steps.jwt.UnknownException |
401 | Ocorreu uma exceção desconhecida. |
steps.jwt.WrongKeyType |
401 | Tipo incorreto de chave especificado. Por exemplo, se você especificar uma chave RSA para um algoritmo de curva elíptica ou uma chave de curva para um algoritmo RSA. |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém essa política.
| Nome do erro | Causa | Corrigir |
|---|---|---|
InvalidNameForAdditionalClaim |
A implantação falhará se a declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> for um dos seguintes nomes registrados: kid, iss, sub, aud, iat, exp, nbf ou jti.
|
build |
InvalidTypeForAdditionalClaim |
Se a declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> não for do tipo string, number, boolean ou map, a implantação falhará.
|
build |
MissingNameForAdditionalClaim |
Se o nome da declaração não for especificado no elemento filho <Claim> do elemento <AdditionalClaims>, a implantação falhará.
|
build |
InvalidNameForAdditionalHeader |
Esse erro ocorre quando o nome da declaração usada no elemento filho <Claim> do elemento <AdditionalClaims> é alg ou typ.
|
build |
InvalidTypeForAdditionalHeader |
Se o tipo de declaração usado no elemento filho <Claim> do elemento <AdditionalClaims> não for do tipo string, number, boolean ou map, a implantação falhará.
|
build |
InvalidValueOfArrayAttribute |
Esse erro ocorre quando o valor do atributo de matriz no elemento filho <Claim> do elemento <AdditionalClaims> não está definido como true ou false.
|
build |
InvalidValueForElement |
Se o valor especificado no elemento <Algorithm> não for compatível, a implantação falhará.
|
build |
MissingConfigurationElement |
Esse erro ocorrerá se o elemento <PrivateKey> não for usado com algoritmos da família RSA ou se o elemento <SecretKey> não for usado com algoritmos da família HS.
|
build |
InvalidKeyConfiguration |
Se o elemento filho <Value> não estiver definido nos elementos <PrivateKey> ou <SecretKey>, a implantação falhará.
|
build |
EmptyElementForKeyConfiguration |
Se o atributo de referência do elemento filho <Value> dos elementos <PrivateKey> ou <SecretKey> estiver vazio ou não especificado, a implantação falhará.
|
build |
InvalidConfigurationForVerify |
Esse erro ocorrerá se o elemento <Id> for definido no elemento <SecretKey>.
|
build |
InvalidEmptyElement |
Este erro ocorre se o elemento <Source> da política de verificação JWT
estiver vazio. Se presente, precisa ser definido com um nome de variável de fluxo do Edge.
|
build |
InvalidPublicKeyValue |
Se o valor usado no elemento filho <JWKS> do elemento <PublicKey> não usar um formato válido, conforme especificado no RFC 7517, a implantação falhará.
|
build |
InvalidConfigurationForActionAndAlgorithm |
Se o elemento <PrivateKey> for usado com algoritmos da família HS ou
o elemento <SecretKey> for usado com algoritmos da família RSA, a
implantação falhará.
|
build |
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "TokenExpired" |
JWT.failed |
Todas as políticas do JWT definem a mesma variável em caso de falha. | JWT.failed = true |
Exemplo de resposta de erro
Para gerenciar erros, a prática recomendada é interceptar a parte errorcode da resposta de erro. Não confie no texto em faultstring, porque ele pode mudar.
Exemplo de regra de falha
<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>
Política XMLThreatProtection
Nesta seção, descrevemos os códigos e as mensagens de erro retornados e as variáveis de falha definidas pelo Edge quando a política aciona um erro. Essas informações são importantes para saber se você está desenvolvendo regras de falha para lidar com falhas. Para saber mais, consulte O que você precisa saber sobre erros de política e Como lidar com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
| Código de falha | Status HTTP | Causa | Correção |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | A política XMLThreatProtection pode gerar muitos tipos diferentes de erros ExecutionFailed. A maioria desses erros ocorre quando um limite específico definido na política é excedido. Esses tipos de erros incluem: comprimento do nome do elemento, contagem de filhos, profundidade do nó, contagem de atributos, comprimento do nome do atributo e muitos outros. Veja a lista completa no tópico Solução de problemas da política XMLThreatProtection. | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
Esse erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source> da política XMLThreatProtection não for um documento XML válido. |
build |
steps.xmlthreatprotection.SourceUnavailable |
500 | Esse erro ocorrerá se a variável message especificada no elemento <Source> for:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 | Esse erro ocorrerá se o elemento <Source> estiver definido como uma variável que não é do tipo message. |
build |
Observações:
- O nome do erro ExecutionFailed é o nome de erro padrão e será retornado, independentemente do tipo de erro detectado. No entanto, esse padrão pode ser alterado por meio da definição de uma propriedade no nível da organização. Quando essa propriedade é definida, o nome do erro reflete o erro real. Por exemplo, "TextExceeded" ou "AttrValueExceeded". Consulte as Observações de uso para mais detalhes.
- O status HTTP 500 é o padrão. No entanto, o status HTTP pode ser alterado para 400 para falhas de fluxo de solicitações, definindo uma propriedade no nível da organização. Consulte as Observações de uso para mais detalhes.
Erros de implantação
Nenhum.
Variáveis de falha
Essas variáveis são definidas quando ocorre um erro de tempo de execução. Para mais informações, consulte O que você precisa saber sobre erros de política.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="fault_name" |
fault_name é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "SourceUnavailable" |
xmlattack.policy_name.failed |
policy_name é o nome especificado pelo usuário da política que causou a falha. | xmlattack.XPT-SecureRequest.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Exemplo de regra de falha
<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>Política XMLtoJSON
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.xmltojson.ExecutionFailed |
500 | This error occurs when the input payload (XML) is empty or the input XML is invalid or malformed. | build |
steps.xmltojson.InCompatibleType |
500 | This error occurs if the type of the variable defined in the <Source> element and the
<OutputVariable> element are not the same. It is mandatory that the type of the variables
contained within the <Source> element and the <OutputVariable> element matches.
|
build |
steps.xmltojson.InvalidSourceType |
500 | This error occurs if the type of the variable used to define the <Source> element is
invalid.The valid types of variable are message and string. |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | This error occurs if the variable specified in the <Source> element of the XML to
JSON policy is of type string and the <OutputVariable> element is not defined.
The <OutputVariable> element is mandatory when the variable defined in the <Source>
element is of type string. |
build |
steps.xmltojson.SourceUnavailable |
500 |
This error occurs if the message
variable specified in the <Source> element of the XML to JSON policy is either:
|
build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
EitherOptionOrFormat |
If one of the elements <Options> or <Format> is not
declared in the XML to JSON Policy, then the deployment of the API proxy fails.
|
build |
UnknownFormat |
If the <Format> element within the XML to JSON policy has an unknown
format defined, then the deployment of the API proxy fails. Predefined formats include:
xml.com, yahoo, google, and badgerFish.
|
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 = "SourceUnavailable" |
xmltojson.policy_name.failed |
policy_name is the user-specified name of the policy that threw the fault. | xmltojson.XMLtoJSON-1.failed = true |
Example error response
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
Example fault rule
<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>
Política de XSLTransform
Runtime errors
These errors can occur when the policy executes.
| Fault code | HTTP status | Cause | Fix |
|---|---|---|---|
steps.xsl.XSLSourceMessageNotAvailable |
500 |
This error occurs if the message or string variable specified in the <Source> element of the
XSL Transform policy is either out of scope (not available in the specific flow where the
policy is being executed) or can't be resolved (is not defined).
|
build |
steps.xsl.XSLEvaluationFailed |
500 | This error occurs if the input XML payload is unavailable/malformed or the XSLTransform policy fails/is unable to transform the input XML file based on the transformation rules provided in the XSL file. There could be many different causes for the XSLTransform policy to fail. The reason for failure in the error message will provide more information on the cause. | build |
Deployment errors
These errors can occur when you deploy a proxy containing this policy.
| Error name | Cause | Fix |
|---|---|---|
XSLEmptyResourceUrl |
If the <ResourceURL> element in the XSL Transform policy is empty, then the
deployment of the API proxy fails. |
build |
XSLInvalidResourceType |
If the resource type specified in the <ResourceURL> element of the XSL Transform
policy is not of type xsl, then the deployment of the API proxy fails. |
build |