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

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

UserNameRequired

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur Edge ou de l'API de gestion Edge é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 Edge ou de l'API de gestion Edge é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 Edge ou de l'API de gestion Edge é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 Edge ou de l'API de gestion Edge é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>