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

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

InvalidEmptyElement

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o la API de Edge Management falla y 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 del ejemplo.

En la IU de Edge, verás un cuadro de diálogo con un error:

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).
    

Resolució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>