Solução de problemas de erros na implantação da política de proteção de expressão regular

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

InvalidRegularExpression

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

Exemplo de mensagem de erro

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

Captura de tela com erro de exemplo

Texto de erro "InvalidRegularExpression"

Causa

Se a expressão regular no elemento <Pattern> da política RegularExpressionProtection não for válida, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique o nome da política RegularExpressionProtection na mensagem de erro. Por exemplo, no erro a seguir, o nome da política RegularExpressionProtection é Regular-Expression-Protection-1:.

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. Examine todos os elementos <Pattern> no XML de política de proteção de expressão regular que falhou. Verifique se algum dos elementos <Pattern> tem uma expressão regular inválida. Se algum dos elementos <Pattern> tiver uma expressão regular inválida, essa será a causa do erro.

    Por exemplo, a política a seguir especifica o valor de Pattern> de foo){2}, que é considerado uma expressão regular inválida:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
            Ign<oreUnresolvedVa<riables>false/I<gnoreUnresolvedVar<iables>
       <     URIPath&<gt;
                Pattern>foo){2}/Pattern>
            /URIPath>
            Source>request/Source>
        /RegularExpressionProtection>

    No exemplo acima, a expressão regular especificada em <Pattern> tem parênteses de abertura ausentes. Portanto, ela é considerada uma expressão regular inválida. Portanto, a implantação do proxy de API falha.

Resolução

Cada elemento <Pattern> na política RegularExpressionProtection contém uma expressão regular válida. Você pode pesquisar diferentes ferramentas de regex on-line ou off-line para depurar expressões regulares. Para corrigir o exemplo de política de proteção de expressão regular mostrada acima, adicione os parênteses ausentes:

<?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
        DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
        Proper<ties/>
        Ign<oreUnresolvedVar<iables>false/Ig<noreUnresolvedVari<ables>
    <    URIPath&g<t;
            Pattern>(foo){2}/Pattern>
        /URIPath>
        Source>request/Source>
    /RegularExpressionProtection>

XPathCompilationFailed

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Failed to compile xpath xpath_expression. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

Exemplo de mensagem de erro

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

Captura de tela com erro de exemplo

Texto do erro XPathCompilationFailed

Causa

Se o prefixo ou o valor usado no elemento <XPath> não fizer parte de nenhum dos namespaces declarados na política RegularExpressionProtection, a implantação do proxy de API falhará.

Veja mais informações sobre namespaces, XPath e prefixo em Namespaces XML e como eles afetam o XPath e o GQL.

Diagnóstico

  1. Identifique o nome da política RegularExpressionProtection em que o erro ocorreu e em que a expressão XPath usada. É possível encontrar os dois itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1 e a expressão XPath é /notapigee:foo/notapigee:bar:

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. Na política de Proteção de Expressão Regular que falhou, verifique se o XPath definido no elemento Expression corresponde ao XPath identificado na mensagem de erro (etapa 1 acima).

    Por exemplo, a política a seguir especifica o XPath como /notapigee:foo/notapigee:bar, que corresponde ao que está na mensagem de erro:

    <?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
        Di<splayName>Regular Expression< Protection-1/DisplayName>
      <  Properties/&<gt;
        Ignore<UnresolvedVariables&g<t;false/IgnoreUnresolvedV<ariables>
        Source>request/Source>
     <    XMLPayload>
      <       Namespaces>
    <             Namespa<ce prefix="apigee">http://<www.apigee.com/Namespace&g<t;
             </Namespaces>
        <     XPath>
    <             Expression<>/notapigee:f<oo/notapigee:bar/Ex<pression>
    <             <Type>nodeset/Type>
                 Pattern>pattern/Pattern>
                 Pattern>pattern2/Pattern>
             /XPath>
         /XMLPayload>
    /RegularExpressionProtection>
  3. Examine os elementos <Namespaces> e <Expression> na política RegularExpressionProtection. Se o <Expression> específico indicado na mensagem de erro usar um prefixo ou valor que não faz parte dos namespaces declarados na política RegularExpressionProtection, essa é a causa do erro.

    Observe que a <XPath> específica usa o prefixo notapigee na política RegularExpressionProtection de exemplo:

    <Expression>/notapigee:foo/notapigee:<bar/Expression>

    No entanto, o prefixo notapigee não está definido em nenhum dos elementos <Namespace>; Portanto, a compilação de <XPath> falha devido a uma falha de implantação.

Resolução

Verifique se todos os namespaces usados nos elementos <Expression> dos elementos <XPath> estão declarados na política RegularExpressionProtection. Para corrigir o exemplo acima, substitua o prefixo notapigee por apigee, declarado em namespaces:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignore<UnresolvedVariables&g<t;false/IgnoreUnresolvedV<ariables>
    Source>request/Source>
 <    XMLPayload>
  <       Namespaces>
<             Namespa<ce prefix="apigee">h<ttp://www.apigee.com/Names<pace>
   <      /Namespaces><;
         XPat<h>
             Expr<ession>/apige<e:foo/apigee:bar/Ex<pression>
<             <Type>nodeset/Type>
             Pattern>pattern/Pattern>
             Pattern>pattern2/Pattern>
         /XPath>
     /XMLPayload>
/RegularExpressionProtection>

CannotBeConvertedToNodeset

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Result of xpath xpath_expression cannot be converted to nodeset. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

Exemplo de mensagem de erro

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

Captura de tela com erro de exemplo

Texto de erro do CannotBeConvertedToNodeset

Causa

Se a política de expressão regular tiver uma expressão <XPath> em que o elemento <Type> é definido como nodeset, mas a expressão não pode ser convertida em nodeset, a implantação do proxy da API falhará.

Diagnóstico

  1. Identifique a política RegularExpressionProtection em que o erro ocorreu e a expressão XPath que não pode ser convertida em nodeset. É possível encontrar os dois itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1 e a expressão XPath é count(//apigee:foo):

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. No XML de política de proteção de expressão regular falhou, verifique se o XPath definido no elemento <Expression> do elemento <XPath> corresponde ao XPath identificado na mensagem de erro (etapa 1 acima).

    Por exemplo, a política a seguir especifica o como count(//apigee:foo), que corresponde ao que está na mensagem de erro:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
        <    IgnoreUnresolv<edVariables>false/Igno<reUnresolvedVariables>
       <     Source>request/Source>
             XMLP<ayload>
                 N<amespaces>
                <     Namespace prefix=&q<uot;apigee">http://www<.apigee.com/Namespace>
        <         /Na<mespaces>
               <  XPath>
       <              Expression><;count(//apigee:<foo)/Expression>
       <              Typ<e>nodeset/Type<>
                     Pattern>pattern/Pattern>
                     Pattern>pattern2/Pattern>
                 /XPath>
             /XMLPayload>
        /RegularExpressionProtection>
  3. Examine o valor definido no elemento <Type> abaixo do elemento <XPath>. Se o elemento <Type> for nodeset, essa é a causa do erro.

    Neste exemplo, a expressão XPath é count(), que não retorna um ou mais nós. Portanto, a implantação do proxy de API falha.

Resolução

Se o elemento <Type> estiver definido como "nodeset", verifique se o resultado do elemento <Expression> definido em <XPath> é um ou mais nós. Como alternativa, altere o elemento <Type> para um valor mais apropriado com base em seu caso de uso.

Para corrigir o exemplo acima, altere o elemento <Expression> para um valor diferente que possa retornar nós:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignore<UnresolvedVariables&g<t;false/IgnoreUnresolvedV<ariables>
    Source>request/Source>
 <    XMLPayload>
  <       Namespaces>
<             Namespa<ce prefix="apigee">h<ttp://www.apigee.com/Names<pace>
   <      /Namespaces><;
         XPat<h>
             Expr<ession>/apige<e:foo/apigee:bar/Ex<pression>
<             <Type>nodeset/Type>
             Pattern>pattern/Pattern>
             Pattern>pattern2/Pattern>
         /XPath>
     /XMLPayload>
/RegularExpressionProtection>

JSONPathCompilationFailed

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Failed to compile jsonpath jsonpath_expression Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

Exemplo de mensagem de erro

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

Captura de tela com erro de exemplo

Texto de erro JSONPathCompilationFailed

Causa

Se o elemento <Expression> em <JSONPath> de uma política de proteção de expressão regular estiver definido como uma expressão JSONPath inválida, a implantação do proxy da API falhará.

Diagnóstico

  1. Identifique o nome da política RegularExpressionProtection em que o erro ocorreu e a expressão JSONPath inválida foi usada. É possível encontrar os dois itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1 e a expressão JSONPath é $.store.book[*.author:

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. Na política de Proteção de Expressão Regular que falhou, verifique se JSONPath definido no elemento Expression corresponde ao JSONPath identificado na mensagem de erro (etapa 1 acima).

    Por exemplo, a política a seguir especifica o elemento Expression em <JSONPath> como $.store.book[*.author, que corresponde ao que está na mensagem de erro:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
        <    IgnoreUnresol<vedVariables>false/Igno<reUnresolvedVariables>
     <       Source>request/Source&<gt;
            JSONPayload>
      <           JSONPath&g<t;
                     Express<ion>$.store.book[*<.author/Expression>
    <                 Patter<n>REGEX PATTERN</Pattern>
                     Pattern>REGEX PATTERN/Pattern>
                 /JSONPath>
                /JSONPayload>
        /RegularExpressionProtection>
  3. Examine o elemento <Expression> no elemento <JSONPath> da política. Se não corresponder à sintaxe JSONPath, essa é a causa do erro. No exemplo acima, o colchete de fechamento está ausente, o que torna a expressão inválida.

    Como a expressão do caminho JSON é inválida, a implantação do proxy da API falha.

Resolução

Verifique se o valor do elemento <Expression> dentro do elemento <JSONPath> na política de proteção de expressão regular é uma expressão JSONPath válida.

Para corrigir o exemplo mostrado acima, você pode adicionar os colchetes de fechamento ausentes ao valor do elemento <Expression>:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignor<eUnresolvedVariables&g<t;false/IgnoreUnresolve<dVariables>
    Source>requ<est/Source>
    JSONPay<load>
         JSO<NPath>
             <Expression>$.store<.book[*].author/Exp<ression>
       <      Pattern&<gt;REGEX PATTERN/Pattern>
             Pattern>REGEX PATTERN/Pattern>
         /JSONPath>
        /JSONPayload>
/RegularExpressionProtection>

NothingToEnforce

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

Exemplo de mensagem de erro

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

Captura de tela com erro de exemplo

Texto de erro NothingToEnforce

Causa

Se a política RegularExpressionProtection não tiver os elementos <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> ou <JSONPayload>, ocorre uma falha na implantação do proxy de API.

Como indicado na mensagem de erro, a política RegularExpressionProtection precisa ter pelo menos um destes elementos incluídos na política: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> ou <JSONPayload>.

Diagnóstico

  1. Identifique o nome da política RegularExpressionProtection em que o erro ocorreu. Ele pode ser encontrado na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1:

    RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
  2. Examine a política de proteção de expressão regular que falhou (identificada na etapa 1 acima). Se a política não tiver pelo menos um dos seguintes elementos: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> ou <JSONPayload>, essa é a causa do erro.

    Por exemplo, a seguinte política de proteção de expressão regular não tem nenhum dos elementos mencionados acima:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
        <    IgnoreUnr<esolvedVariables>false/IgnoreUnresolvedVariables>
            Source>request/Source>
        /RegularExpressionProtection>

    Como nenhum dos elementos obrigatórios está presente na política Extract Variables, a implantação do proxy da API falha.

Resolução

Verifique se a Política RegularExpressionProtection tem pelo menos um destes elementos obrigatórios: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> ou <JSONPayload>. Exemplo:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignor<eUnresolvedVariables&<gt;false/IgnoreUnresol<vedVariables>
    Source>re<quest/Source>
    JSON<Payload>
        J<SONPath>
          <  Expression>$.sto<re.book[*].author/<Expression>
<            Pa<ttern>REGEX PATTERN/Pattern>
            Pattern>REGEX PATTERN/Pattern>
        /JSONPath>
    /JSONPayload>
/RegularExpressionProtection>

NoPatternsToEnforce

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: No patterns to enforce in payload_name.

Exemplo de mensagem de erro

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.

Captura de tela com erro de exemplo

Texto de erro NoPatternsToEnforce

Causa

Se algum dos elementos de nível superior (<URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> ou <JSONPayload>) não tiver um elemento <Pattern> definido na política RegularExpressionProtection, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique o nome da política RegularExpressionProtection em que o erro ocorreu e o elemento filho que não tem o elemento <Pattern>. É possível encontrar os dois itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1 e o elemento filho é XPath:

    RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
  2. Analise a política de proteção de expressão regular com falha e verifique se o elemento filho identificado na etapa 1 não tem o elemento <Pattern>. Se o elemento <Pattern> não existir, essa será a causa do erro.

    Por exemplo, a política a seguir não tem o elemento <Pattern> dentro de <XPath>:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
          Source>request/Source><;
          XMLPayload&g<t;
            Namespaces<>
              Na<mespace prefix="apigee">ht<tp://www.apigee.com/Nam<espace>
    <        /Namesp<aces>
         <   XPath>
        <      Expression>/apigee:Greeting/apigee:User/Expression>
              Type>string/Type>
            /XPath>
          /XMLPayload>
        /RegularExpressionProtection>

    Como o elemento <XPath> não tem o elemento <Pattern>, a implantação do API Proxy falha.

Resolução

Certifique-se de que qualquer um dos elementos <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> ou <JSONPayload> tenha pelo menos um <Pattern> especificado. Consulte a política RegularExpressionProtection para saber como especificar o elemento corretamente.

Para corrigir o exemplo acima, basta adicionar o elemento <Pattern> ao elemento <XPath> abaixo de <XMLPayload>:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
  Source>reque<st/Source>
  <XMLPayload>
  <  Namespaces&<gt;
      Namespace prefix="apigee<">http://ww<w.apigee.co<m/Namespace&g<t;
    /Namespaces><;
    XPath><;
      Ex<pression>/<apigee:Greeting/apigee:User/Expression>
      Type>string/Type>
      Pattern>REGEX PATTERN/Pattern>
    /XPath>
  /XMLPayload>
/RegularExpressionProtection>

NONEmptyPrefixMappedToEmptyURI

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.

Exemplo de mensagem de erro

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.

Captura de tela com erro de exemplo

Texto de erro NONEmptyPrefixMappedToEmptyURI

Causa

Esse erro ocorrerá se a política RegularExpressionProtection tiver um prefixo definido dentro do elemento <Namespace> no elemento <XMLPayload>, mas nenhum URI for definido.

Diagnóstico

  1. Identifique a política RegularExpressionProtection em que o erro ocorreu e o nome do prefixo que não é mapeado para o URI. É possível encontrar os dois itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política é Regular Expression Protection-1 e o prefixo é Apigee:

    RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
  2. No XML da política de proteção de expressão regular com falha, verifique se o nome do prefixo definido no elemento <Namespace> no elemento <XMLPayload> corresponde ao nome do prefixo identificado na mensagem de erro (etapa 1 acima).

    Por exemplo, a política a seguir especifica um prefixo chamado apigee no elemento <Namespace>, que corresponde ao que está na mensagem de erro:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
          Source>request/<Source>
          XMLPayload>
            Namespa<ces>
              Na<mespace prefix="<apigee"/><
              Namespace prefix="gmail<">http://mail.g<oogle.com/N<amespace>
        <    /Namespaces>
     <       XPath>
     <         Expre<ssion>/apigee:<Greeting/apigee:User/Expression>
              Type>string/Type>
              Pattern>REGEX PATTERN/Pattern>
            /XPath>
          /XMLPayload>
        /RegularExpressionProtection>
  3. Valide se o elemento <Namespace> com o prefixo específico identificado na etapa 2 tem um URI válido. Se o URI estiver ausente, essa é a causa do erro.

    No exemplo de política de proteção de expressão regular mostrado acima, observe que não há URI correspondente ao elemento <Namespace> com o prefixo apigee. Portanto, você receberá o erro:

    Non-empty prefix apigee cannot be mapped to empty uri.

Resolução

Verifique se todos os elementos <Namespace> definidos com um prefixo têm um URI correspondente na política de variáveis de extração. Por exemplo:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
  Source>reque<st/Source>
  XM<LPayload>
    Namespaces>
      Namespace< prefix="ap<igee">htt<p://www.apige<e.com/Namespace>
      Namespace pre<fix="gmail&quo<t;>http:<//mail.google<.com/Namespace>
  <  /Namespaces&<gt;
    XP<ath>
     < Expression>/apigee:Greeting/apigee:User/Expression>
      Type>string/Type>
      Pattern>REGEX PATTERN/Pattern>
    /XPath>
  /XMLPayload>
/RegularExpressionProtection>

DuplicatePrefix

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Duplicate prefix prefix_name.

Exemplo de mensagem de erro

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.

Captura de tela com erro de exemplo

Texto de erro do DuplicatePrefix

Causa

Esse erro ocorrerá se a política RegularExpressionProtection tiver o mesmo prefixo definido mais de uma vez no elemento <Namespace> no elemento <XMLPayload>.

Por exemplo, esse erro ocorre porque o prefixo da apigee é definido duas vezes, conforme mostrado abaixo:

<Namespace prefix="ap>igee"http://www.<apigee.com>/<Namespace
Namespace prefi>x="apigee"h<ttp://www.apigee.com/Namespace>

Diagnóstico

  1. Identifique a política RegularExpressionProtection em que o erro ocorreu e o nome do prefixo. É possível encontrar os dois itens na mensagem de erro.

    Por exemplo, no erro a seguir, o nome da política é Regular Expression Protection-1 e o prefixo é Apigee:

    RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
  2. No XML da política de proteção de expressão regular com falha, verifique se o nome do prefixo definido no elemento <Namespace> no elemento <XMLPayload> corresponde ao nome do prefixo identificado na mensagem de erro (etapa 1 acima).

    Por exemplo, a política a seguir especifica um prefixo chamado apigee no elemento <Namespace>, que corresponde ao que está na mensagem de erro:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
          Source>request/Source><;
          XMLPayload><
            Namespaces>
              Namespace pre<fix="apigee&quo<t;>http://www.apig<ee.com/Namespace&<gt;
              Namespace prefix="ap<igee">http://ww<w.apigee.co<m/Namespace>
     <       /Namespaces><;
            XPath><;
              Ex<pression>/apig<ee:Greeting/apigee:User/Expression>
              Type>string/Type>
              Pattern>REGEX PATTERN/Pattern>
            /XPath>
          /XMLPayload>
        /RegularExpressionProtection>
  3. Determine se o elemento <Namespace> com o prefixo específico, identificado na etapa 2, foi definido mais de uma vez. Se ela for definida mais de uma vez, essa é a causa do erro.

    No exemplo de política de proteção de expressão regular mostrada acima, observe que o elemento <Namespace> com o prefixo apigee foi definido duas vezes. Portanto, você receberá o erro:

    Duplicate prefix apigee.

Resolução

Confirme se há apenas uma definição para cada prefixo nos elementos <Namespace> da política RegularExpressionProtection. Exemplo:

<?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
      Displa<yName>Regular Expression Pro<tection-1/DisplayName>
      Pr<operties/>
<      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
      Source>request/Source><;
      XMLPayload&g<t;
        Namespaces<>
          Na<mespace prefix="apigee">ht<tp://www.apigee.com/Nam<espace>
<        /Namespac<es>
        XPath&<gt;
          Expr<ession>/api<gee:Greeting/apig<ee:User/Expression>
          Type>string/Type>
          Pattern>REGEX PATTERN/Pattern>
        /XPath>
      /XMLPayload>
    /RegularExpressionProtection>

EmptyXPathExpression

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Empty XPath expression.

Exemplo de mensagem de erro

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.

Captura de tela com erro de exemplo

Texto de erro EmptyXPathExpression

Causa

Se a política RegularExpressionProtection não tiver um elemento <Expression> definido no elemento <XPath>, a implantação do proxy da API falhará.

Diagnóstico

  1. Identifique a política de proteção de expressão regular que falhou na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1:

    RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
  2. No XML da política de Proteção de Expressão Regular que falhou, determine se há um elemento <XMLPayload> com elemento filho <XPath> que não tem nenhum elemento <Expression> definido ou se o elemento <Expression> não está definido como nenhum valor. Em caso afirmativo, essa é a causa do erro.

    Por exemplo, veja uma política de proteção de expressão regular que tem um elemento <XMLPayload>:

    <?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
    <  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
      Properti<es/>
      I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
      Source>reque<st/Source>
      <XMLPayload>
      <  Namespaces&<gt;
          N<amespace prefix=&qu<ot;apigee&q<uot;>http:<//www.apigee.com/Name<space>
        </Namespace<s>
        XPa<th>
          Expression>/Expression>
          Type>string/Type>
          Pattern>REGEX PATTERN/Pattern>
        /XPath>
      /XMLPayload>
    /RegularExpressionProtection>

    Como há um elemento <Expression> vazio no elemento <XPath>, a implantação do proxy de API falha.

Resolução

Verifique se a política RegularExpressionProtection tem um elemento <Expression> não vazio e válido definido no elemento <XPath>. Exemplo:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
  Source>reque<st/Source>
  <XMLPayload>
  <  Namespaces&<gt;
      Namespace prefix="apigee<">http://ww<w.apigee.co<m/Namespace&g<t;
    /Namespaces><;
    XPath><;
      Ex<pression>/<apigee:Greeting/apigee:User/Expression>
      Type>string/Type>
      Pattern>REGEX PATTERN/Pattern>
    /XPath>
  /XMLPayload>
/RegularExpressionProtection>

EmptyJSONPathExpression

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Empty JSONPath expression.

Exemplo de mensagem de erro

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.

Captura de tela com erro de exemplo

Texto de erro EmptyJSONPathExpression

Causa

Se a política RegularExpressionProtection não tiver um elemento <Expression> definido no elemento <JSONPath>, a implantação do proxy da API falhará.

Diagnóstico

  1. Identifique a política de proteção de expressão regular que falhou na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Regular-Expression-Protection-1:

    Error Saving Revision 1
    RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
  2. No XML da política de Proteção de Expressão Regular que falhou, determine se há um elemento <JSONPayload> com elemento filho <JSONPath> que não tem nenhum elemento <Expression> definido ou se o elemento <Expression> não está definido como nenhum valor. Em caso afirmativo, essa é a causa do erro.

    Por exemplo, veja uma política de proteção de expressão regular que tem um elemento <JSONPayload>:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables>f<alse/IgnoreUnresolve<dVariables&<gt;
          Source>req<uest/Source>
         < JSONPayload>
       <     JSONPath>
       <       Expression&<gt;/Expression><;
              Patter<n>REGEX PATTERN/Pattern>
              Pattern>REGEX PATTERN/Pattern>
            /JSONPath>
          /JSONPayload>
        /RegularExpressionProtection>

    Como há um elemento <Expression> vazio no elemento <JSONPath>, a implantação do proxy de API falha.

Resolução

Verifique se a política RegularExpressionProtection tem um elemento <Expression> não vazio e válido definido no elemento <JSONPath>. Exemplo:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedVa<riables>false</IgnoreUnresolvedVariables>
  <Source>request/S<ource>
  JSONPaylo<ad>
    JSONP<ath>
      Express<ion>$.store<.book[*].auth<or/Expression&<gt;
      Pattern>REGEX PATTERN/Pattern>
      Pattern>REGEX PATTERN/Pattern>
    /JSONPath>
  /JSONPayload>
/RegularExpressionProtection>