Solução de problemas de erro na implantação da política DecodeJWT

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

InvalidEmptyElement

Mensagem de erro

A implantação do proxy da API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

Error Saving Revision
Invalid empty element : policy(policy_name) element(Source)

Exemplo de mensagem de erro

Error Saving Revision
Invalid empty element : policy(Decode_JWT) element(Source).

Exemplo de captura de tela

Na IU da Apigee, você verá uma caixa de diálogo com um erro:

Erro ao salvar a revisão.

Causa

Esse erro ocorre se a variável de fluxo que contém o JWT a ser decodificada não for especificada no elemento <Source> da política DecodeJWT.

Por exemplo, o erro ocorrerá se o elemento <Source> não contiver um valor, conforme mostrado abaixo:

<Source></Source>

Diagnóstico

  1. Identifique o nome da política DecodeJWT e o nome do elemento que está vazio na mensagem de erro. Por exemplo, na mensagem de erro a seguir, o nome da política DecodeJWT é Decode_JWT e o nome do elemento é Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
  2. Analise a política de Decodificar JWT e verifique se o elemento identificado na Etapa 1 está vazio. Se o elemento estiver vazio, essa é a causa do erro.

    Veja um exemplo de política DecodeJWT:

    <DecodeJWT name="Decode_JWT">
        <DisplayName>JWT Decode HS256</DisplayName>
        <Source></Source>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    </DecodeJWT>
    

    Como o elemento <Source> está vazio, você recebe o erro:

    Invalid empty element : policy(Decode_JWT) element(Source).
    

Resolução

Verifique se o elemento <Source> especifica um JWT válido em uma variável de fluxo.

Para corrigir o problema com a política de exemplo de decodificação de JWT, especifique a variável de fluxo que contém um JWT válido no elemento <Source>.

<DecodeJWT name="Decode_JWT">
    <DisplayName>JWT Decode HS256</DisplayName>
    <Source>var.jwt</Source>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</DecodeJWT>