Solucionar problemas de errores de implementación de la política BasicAuthentication

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

UserNameRequired

Mensaje de error

La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

Causa

La implementación del proxy de API falla si el elemento <User> no se define en la política BasicAuthentication. El elemento <User> es obligatorio tanto para las operaciones de codificación como para las de decodificación.

Diagnóstico

  1. Examina todas las políticas BasicAuthentication que se usan en el proxy de API. Si hay alguna política en la que no se especifica el elemento <User>, ese es el motivo del error. El elemento <User> es obligatorio en la política BasicAuthentication para las operaciones Encode o Decode.

    La política BasicAuthentication de ejemplo que se muestra a continuación se usa para la operación Encode, pero no tiene definido el elemento <User>:

    <?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>
    

    El despliegue falla y se muestra el siguiente error:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Resolución

Asegúrate de que el elemento <User> se haya definido en la política BasicAuthentication para la operación Encode o Decode.

Para corregir el ejemplo anterior, incluya el elemento <User> en la política, tal como se muestra a continuación:

<?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

Mensaje de error

La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

Causa

La implementación del proxy de API falla si el elemento <Password> no se define en la política BasicAuthentication. El elemento <Password> es obligatorio tanto para las operaciones de codificación como para las de decodificación.

Diagnóstico

  1. Examina todas las políticas BasicAuthentication que se usan en el proxy de API. Si hay alguna política en la que no se haya definido el elemento <Password>, ese será el motivo del error. El elemento <Password> es obligatorio en la política BasicAuthentication para las operaciones Encode o Decode.

    La política BasicAuthentication de ejemplo que se muestra a continuación se usa para la operación Encode, pero no tiene definido el elemento <Password>:

    <?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>
    

    El despliegue falla y se muestra el siguiente error:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Resolución

Asegúrate de que el elemento <Password> se haya definido en la política BasicAuthentication para la operación Encode o Decode.

Para corregir el ejemplo anterior, incluya el elemento <Password> en la política, tal como se muestra a continuación:

<?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

Mensaje de error

La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

Causa

La implementación del proxy de API falla si el elemento <AssignTo> no se define en la política BasicAuthentication. El elemento <AssignTo> es obligatorio tanto para las operaciones de codificación como para las de decodificación.

Diagnóstico

  1. Examina todas las políticas BasicAuthentication que se usan en el proxy de API. Si hay alguna política en la que no se defina el elemento <AssignTo>, ese será el motivo del error. El elemento <AssignTo> es obligatorio en la política BasicAuthentication para las operaciones Encode y Decode.

    La política BasicAuthentication de ejemplo que se muestra a continuación se usa para la operación Encode, pero no tiene definido el elemento <AssignTo>:

    <?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>
    

    El despliegue falla y se muestra el siguiente error:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Resolución

Asegúrate de que el elemento <AssignTo> se haya definido en la política BasicAuthentication para la operación Encode o Decode.

Para corregir el ejemplo anterior, incluya el elemento <AssignTo> en la política, tal como se muestra a continuación:

<?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

Mensaje de error

La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de ejemplo

Causa

La implementación del proxy de API falla si el elemento <Source> no se define en la política BasicAuthentication que se usa para la operación de decodificación. El elemento <Source> es obligatorio si <Operation> se especifica como Decode en la política BasicAuthentication.

Diagnóstico

  1. Examina todas las políticas BasicAuthentication que se usan en el proxy de API. Si hay alguna política en la que no se defina el elemento <Source> y el elemento <Operation> se defina como Decode, ese será el motivo del error. El elemento <Source> es obligatorio si <Operation> se especifica como Decode en la política BasicAuthentication.

    La política BasicAuthentication de ejemplo que se muestra a continuación se usa para la operación Decode, pero no tiene definido el elemento <Source>:

    <?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>
    

    El despliegue falla y se muestra el siguiente error:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Resolución

Asegúrate de que el elemento <Source> se defina en la política BasicAuthentication cuando se utilice para la operación Decode.

Para corregir el ejemplo anterior, incluya el elemento <Source> en la política, tal como se muestra a continuación:

<?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>