Solución de errores durante la implementación de la política de DecodeJWT

Estás viendo 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 IU o la API de Apigee falla con 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 IU de Apigee, verás un cuadro de diálogo con un error:

Se produjo un error al guardar la revisión.

Causa

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

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

<Source></Source>

Diagnóstico

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

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

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

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

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

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

Solución

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

Para solucionar el problema con la política de DecodeJWT de muestra, puedes especificar la variable del 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>