Résoudre les problèmes liés au déploiement d'une règle BasicAuthentication

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

UserNameRequired

Message d'erreur

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Username element must be present for operation operation.

Exemple de message d'erreur

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Username element must be present for Encode operation.

Exemple de capture d'écran

Cause

Le déploiement du proxy d'API échoue si l'élément <User> n'est pas défini dans la règle BasicAuthentication. L'élément <User> est obligatoire pour les opérations d'encodage et de décodage.

Diagnostic

  1. Examinez toutes les règles BasicAuthentication utilisées dans le proxy d'API. Si l'élément <User> n'est pas spécifié dans l'une de ces règles, alors il s'agit de la cause de l'erreur. Dans la règle BasicAuthentication, l'élément <User> est obligatoire pour les opérations d'encodage ou de décodage.

    L'exemple de règle BasicAuthentication présenté ci-dessous est utilisé pour l'opération d'encodage, mais l'élément <User> n'est pas défini :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <Password ref="BasicAuth.credentials.password"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Le déploiement échoue avec l'erreur ci-dessous :

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Solution

Assurez-vous que l'élément <User> est défini dans la règle BasicAuthentication pour les opérations d'encodage ou de décodage.

Pour corriger l'exemple ci-dessus, incluez l'élément <User> dans la règle, comme indiqué ci-dessous :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

PasswordRequired

Message d'erreur

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Password element must be present for operation operation.

Exemple de message d'erreur

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Password element must be present for Encode operation.

Exemple de capture d'écran

Cause

Le déploiement du proxy d'API échoue si l'élément <Password> n'est pas défini dans la règle BasicAuthentication. L'élément <Password> est obligatoire pour les opérations d'encodage et de décodage.

Diagnostic

  1. Examinez toutes les règles BasicAuthentication utilisées dans le proxy d'API. Si l'élément <Password> n'est pas défini dans l'une de ces règles, alors il s'agit de la cause de l'erreur. Dans la règle BasicAuthentication, l'élément <Password> est obligatoire pour l'opération d'encodage ou de décodage.

    L'exemple de règle BasicAuthentication présenté ci-dessous est utilisé pour l'opération d'encodage, mais l'élément <Password> n'est pas défini :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Le déploiement échoue avec l'erreur ci-dessous :

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Solution

Assurez-vous que l'élément <Password> est défini dans la règle BasicAuthentication pour les opérations d'encodage ou de décodage.

Pour corriger l'exemple ci-dessus, incluez l'élément <Password> dans la règle, comme indiqué ci-dessous :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

AssignToRequired

Message d'erreur

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: AssignTo element must be present for operation operation.

Exemple de message d'erreur

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.

Exemple de capture d'écran

Cause

Le déploiement du proxy d'API échoue si l'élément <AssignTo> n'est pas défini dans la règle BasicAuthentication. L'élément <AssignTo> est obligatoire pour les opérations d'encodage et de décodage.

Diagnostic

  1. Examinez toutes les règles BasicAuthentication utilisées dans le proxy d'API. Si l'élément <AssignTo> n'est pas défini dans l'une de ces règles, alors il s'agit de la cause de l'erreur. L'élément <AssignTo> doit obligatoirement être défini dans la règle BasicAuthentication pour les opérations d'encodage et de décodage.

    L'exemple de règle BasicAuthentication présenté ci-dessous est utilisé pour l'opération d'encodage, mais l'élément <AssignTo> n'est pas défini :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Encode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <Password ref="BasicAuth.credentials.password"/>
    </BasicAuthentication>
    

    Le déploiement échoue avec l'erreur ci-dessous :

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Solution

Assurez-vous que l'élément <AssignTo> est défini dans la règle BasicAuthentication pour les opérations d'encodage ou de décodage.

Pour corriger l'exemple ci-dessus, incluez l'élément <AssignTo> dans la règle, comme indiqué ci-dessous :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Encode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

SourceRequired

Message d'erreur

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

Error Deploying Revision revision_number to env_name
BasicAuthenticationPolicy: Source element must be present for Decode operation.

Exemple de message d'erreur

Error Deploying Revision 2 to test
BasicAuthenticationPolicy: Source element must be present for Decode operation.

Exemple de capture d'écran

Cause

Le déploiement du proxy d'API échoue si l'élément <Source> n'est pas défini dans la règle BasicAuthentication utilisée pour l'opération de décodage. L'élément <Source> est obligatoire si l'élément <Operation> est spécifié en tant que Decode dans la règle BasicAuthentication.

Diagnostic

  1. Examinez toutes les règles BasicAuthentication utilisées dans le proxy d'API. Si, dans l'une de ces règles, l'élément <Source> n'est pas défini et que l'élément <Operation> est défini sur Decode, alors il s'agit de la cause de l'erreur. L'élément <Source> est obligatoire si l'élément <Operation> est spécifié en tant que Decode dans la règle BasicAuthentication.

    L'exemple de règle BasicAuthentication présenté ci-dessous est utilisé pour l'opération Decode, mais l'élément <Source> n'est pas défini :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <BasicAuthentication name="ApplyBasicAuthHeader">
      <DisplayName>ApplyBasicAuthHeader</DisplayName>
      <Operation>Decode</Operation>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <User ref="BasicAuth.credentials.username"/>
      <Password ref="BasicAuth.credentials.password"/>
      <AssignTo createNew="false">request.header.Authorization</AssignTo>
    </BasicAuthentication>
    

    Le déploiement échoue avec l'erreur ci-dessous :

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Solution

Assurez-vous que l'élément <Source> est défini dans la règle BasicAuthentication lorsqu'il est utilisé pour une opération Decode.

Pour corriger l'exemple ci-dessus, incluez l'élément <Source> dans la règle, comme indiqué ci-dessous :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BasicAuthentication name="ApplyBasicAuthHeader">
    <DisplayName>ApplyBasicAuthHeader</DisplayName>
    <Operation>Decode</Operation>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <User ref="BasicAuth.credentials.username"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
    <Source>request.header.Authorization</Source>
</BasicAuthentication>