Risoluzione degli errori di deployment del criterio DecodeJWT

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

InvalidEmptyElement

Messaggio di errore

Il deployment del proxy API tramite la UI di Edge o l'API di gestione perimetrale 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

Nella UI di Edge, viene visualizzata una finestra di dialogo con un errore:

Causa

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

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

<Source></Source>

Diagnosi

  1. Identifica il nome del criterio DecodeJWT e il nome dell'elemento che è vuoto nel 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, significa che l'errore è dovuto a questo.

    Ecco un esempio di criterio DecodeJWT:

    <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>