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

Vous consultez la documentation d'Apigee X.
Consultez la documentation d'Apigee Edge.

UserNameRequired

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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 par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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 par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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 par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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>