Risoluzione dei problemi di errore di deployment del criterio DecodeJWT

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

InvalidEmptyElement

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Nell'interfaccia utente di Apigee viene visualizzata una finestra di dialogo con un errore:

Errore durante il salvataggio della revisione.

Causa

Questo errore si verifica se la variabile di flusso contenente il JWT da decodificare non è specificata nell'elemento <Source> del criterio DecodeJWT.

Ad esempio, l'errore si verifica se l'elemento <Source> non contiene un valore, come mostrato di seguito:

<Source></Source>

Diagnosi

  1. Identifica il nome del criterio DecodeJWT e il nome dell'elemento vuoto dal messaggio di errore. Ad esempio, nel seguente messaggio di errore, il nome del criterio DecodeJWT è Decode_JWT e il nome dell'elemento è Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
  2. Esamina il criterio DecodeJWT e verifica se l'elemento identificato nel passaggio 1 è vuoto. Se l'elemento è vuoto, è la causa dell'errore.

    Ecco un criterio DecodeJWT di esempio:

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

    Poiché l'elemento <Source> è vuoto, viene visualizzato l'errore:

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

Risoluzione

Assicurati che l'elemento <Source> specifichi un JWT valido in una variabile di flusso.

Per risolvere il problema relativo al criterio DecodeJWT di esempio, puoi specificare la variabile di flusso contenente un JWT valido nell'elemento <Source>.

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