Rozwiązywanie problemów związanych z błędem wdrożenia zasady dekodowania JWT

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

InvalidEmptyElement

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu

W interfejsie Edge zobaczysz okno dialogowe z błędem:

Przyczyna

Ten błąd występuje, jeśli zmienna przepływu zawierająca token JWT, który ma być zdekodowany, nie jest określona w elemencie <Source> zasady Decode JWT.

Błąd wystąpi np. wtedy, gdy element <Source> nie zawiera wartości, jak pokazano poniżej:

<Source></Source>

Diagnostyka

  1. Podaj nazwę zasady Decode JWT i nazwę elementu, który nie ma się w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady DecodeJWT to Decode_JWT, a nazwa elementu to Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
    
  2. Sprawdź zasadę Decode JWT i sprawdź, czy element wskazany w kroku 1 jest pusty. Jeśli element jest pusty, jest to przyczyna błędu.

    Oto przykładowa zasada DecodeJWT:

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

    Ponieważ element <Source> jest pusty, pojawia się błąd:

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

Rozdzielczość

Sprawdź, czy element <Source> w zmiennej przepływu określa prawidłowy token JWT.

Aby rozwiązać problem z przykładową zasadą Decode JWT, możesz podać w elemencie <Source> zmienną przepływu zawierającą prawidłowy token JWT.

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