Resolução de problemas de implementação da política DecodeJWT

Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do Apigee Edge.

InvalidEmptyElement

Mensagem de erro

A implementação do proxy de API através da IU ou da API Apigee 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).

Captura de ecrã de exemplo

Na IU do Apigee, é apresentada uma caixa de diálogo com um erro:

Erro ao guardar a revisão.

Causa

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

Por exemplo, o erro ocorre 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 seguinte mensagem de erro, o nome da política DecodeJWT é Decode_JWT e o nome do elemento é Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
  2. Examine a política DecodeJWT e verifique se o elemento identificado no passo 1 está vazio. Se o elemento estiver vazio, essa é a causa do erro.

    Segue-se um exemplo de uma política DecodeJWT:

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

    Uma vez que o elemento <Source> está vazio, é apresentado o seguinte erro:

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

Resolução

Certifique-se de que o elemento <Source> especifica um JWT válido numa variável de fluxo.

Para corrigir o problema com a política DecodeJWT de exemplo, pode especificar 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>