Résoudre les erreurs de déploiement de la règle DecodeJWT

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

InvalidEmptyElement

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Dans l'interface utilisateur Edge, une boîte de dialogue avec une erreur s'affiche:

Cause

Cette erreur se produit si la variable de flux contenant le jeton JWT à décoder n'est pas spécifiée dans l'élément <Source> de la règle DecodeJWT.

Par exemple, l'erreur se produira si l'élément <Source> ne contient pas de valeur, comme indiqué ci-dessous :

<Source></Source>

Diagnostic

  1. Identifiez le nom de la stratégie DecodeJWT et le nom de l'élément vide dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle DecodeJWT est Decode_JWT et le nom de l'élément est Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
    
  2. Examinez la règle DecodeJWT et vérifiez si l'élément identifié à l'étape 1 est vide. Si l'élément est vide, il s'agit de la cause de l'erreur.

    Voici un exemple de stratégie DecodeJWT :

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

    Comme l'élément <Source> est vide, l'erreur suivante s'affiche :

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

Résolution

Assurez-vous que l'élément <Source> spécifie un jeton JWT valide dans une variable de flux.

Pour résoudre le problème dans l'exemple de règle DecodeJWT, vous pouvez spécifier la variable de flux contenant un jeton JWT valide dans l'élément <Source>.

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