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

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

InvalidEmptyElement

Komunikat o błędzie

Wdrażanie proxy interfejsu API za pomocą interfejsu Edge UI lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetla się 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 z błędem:

Przyczyna

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

Błąd wystąpi na przykład, jeśli element <Source> nie zawiera wartości, jak pokazano poniżej:

<Source></Source>

Diagnostyka

  1. Z komunikatu o błędzie odczytaj nazwę zasady DecodeJWT i nazwę pustego elementu. 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ę DecodeJWT i upewnij się, że element zidentyfikowany w kroku 1 jest pusty. Jeśli element jest pusty, to jest to przyczyną 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ść

Upewnij się, że element <Source> określa prawidłowy token JWT w zmiennej przepływu.

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

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