Fehlerbehebung bei der Bereitstellung von DecodeJWT-Richtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

InvalidEmptyElement

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

In der Apigee-Benutzeroberfläche wird ein Dialogfeld mit einem Fehler angezeigt:

Fehler beim Speichern der Revision.

Ursache

Dieser Fehler tritt auf, wenn die Ablaufvariable mit JWT-Code, das decodiert werden soll, nicht im Element <Source> der DecodeJWT-Richtlinie angegeben ist.

Wenn beispielsweise das Element <Source> keinen Wert enthält, wie unten gezeigt, tritt der Fehler auf:

<Source></Source>

Diagnose

  1. Ermitteln Sie den Namen der DecodeJWT-Richtlinie und den Namen des Elements, das in der Fehlermeldung leer ist. In der folgenden Fehlermeldung lautet der Name der DecodeJWT-Richtlinie beispielsweise Decode_JWT und der Elementname Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
    
  2. Überprüfen Sie die DecodeJWT-Richtlinie und stellen Sie sicher, dass das in Schritt 1 identifizierte Element leer ist. Wenn das Element leer ist, ist dies die Ursache des Fehlers.

    Hier ein Beispiel für eine DecodeJWT-Richtlinie:

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

    Da das Element <Source> leer ist, wird der Fehler angezeigt:

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

Lösung

Prüfen Sie, ob das Element <Source> ein gültiges JWT in einer Ablaufvariable angibt.

Um das Problem mit der DecodeJWT-Beispielrichtlinie zu beheben, können Sie die Ablaufvariable mit einem gültigen JWT im Element <Source> angeben.

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