Solucionar problemas de errores de implementación de la política DecodeJWT

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

InvalidEmptyElement

Mensaje de error

La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

En la interfaz de usuario de Apigee, verás un cuadro de diálogo con un error:

No se ha podido guardar la revisión.

Causa

Este error se produce si la variable de flujo que contiene el JWT que se va a decodificar no se especifica en el elemento <Source> de la política DecodeJWT.

Por ejemplo, se producirá un error si el elemento <Source> no contiene ningún valor, como se muestra a continuación:

<Source></Source>

Diagnóstico

  1. Identifica el nombre de la política DecodeJWT y el nombre del elemento que está vacío en el mensaje de error. Por ejemplo, en el siguiente mensaje de error, el nombre de la política DecodeJWT es Decode_JWT y el nombre del elemento es Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
  2. Examina la política DecodeJWT y comprueba si el elemento identificado en el paso 1 está vacío. Si el elemento está vacío, esa es la causa del error.

    A continuación, se muestra un ejemplo de política DecodeJWT:

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

    Como el elemento <Source> está vacío, se muestra el siguiente error:

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

Resolución

Asegúrate de que el elemento <Source> especifica un JWT válido en una variable de flujo.

Para solucionar el problema con la política de ejemplo DecodeJWT, puede especificar la variable de flujo que contiene un JWT válido en el elemento <Source>.

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