Resolução de problemas de erro de implementação da política BasicAuthentication

Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do Apigee Edge.

UserNameRequired

Mensagem de erro

A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:

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

Mensagem de erro de exemplo

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

Captura de ecrã de exemplo

Causa

A implementação do proxy de API falha se o elemento <User> não estiver definido na política BasicAuthentication. O elemento <User> é obrigatório para as operações Encode e Decode.

Diagnóstico

  1. Examine todas as políticas BasicAuthentication usadas no proxy de API. Se existir alguma política em que o elemento <User> não esteja especificado, essa é a causa do erro. O elemento <User> é obrigatório na política BasicAuthentication para operações de codificação ou descodificação.

    A política BasicAuthentication de exemplo apresentada abaixo é usada para a operação Encode, mas não tem o elemento <User> definido:

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

    A implementação falha com o seguinte erro:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Resolução

Certifique-se de que o elemento <User> está definido na política BasicAuthentication para a operação Encode ou Decode.

Para corrigir o exemplo apresentado acima, inclua o elemento <User> na política, conforme mostrado abaixo:

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

Mensagem de erro

A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:

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

Mensagem de erro de exemplo

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

Captura de ecrã de exemplo

Causa

A implementação do proxy de API falha se o elemento <Password> não estiver definido na política BasicAuthentication. O elemento <Password> é obrigatório para as operações Encode e Decode.

Diagnóstico

  1. Examine todas as políticas BasicAuthentication usadas no proxy de API. Se existir alguma política em que o elemento <Password> não esteja definido, essa é a causa do erro. O elemento <Password> é obrigatório na política BasicAuthentication para a operação Encode ou Decode.

    A política BasicAuthentication de exemplo apresentada abaixo é usada para a operação Encode, mas não tem o elemento <Password> definido:

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

    A implementação falha com o seguinte erro:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Resolução

Certifique-se de que o elemento <Password> está definido na política BasicAuthentication para a operação Encode ou Decode.

Para corrigir o exemplo apresentado acima, inclua o elemento <Password> na política, conforme mostrado abaixo:

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

Mensagem de erro

A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:

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

Mensagem de erro de exemplo

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

Captura de ecrã de exemplo

Causa

A implementação do proxy de API falha se o elemento <AssignTo> não estiver definido na política BasicAuthentication. O elemento <AssignTo> é obrigatório para as operações Encode e Decode.

Diagnóstico

  1. Examine todas as políticas BasicAuthentication usadas no proxy de API. Se existir alguma política em que o elemento <AssignTo> não esteja definido, essa é a causa do erro. O elemento <AssignTo> é obrigatório para ser definido na política BasicAuthentication para as operações Encode e Decode.

    A política BasicAuthentication de exemplo apresentada abaixo é usada para a operação Encode, mas não tem o elemento <AssignTo> definido:

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

    A implementação falha com o seguinte erro:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Resolução

Certifique-se de que o elemento <AssignTo> está definido na política BasicAuthentication para a operação Encode ou Decode.

Para corrigir o exemplo apresentado acima, inclua o elemento <AssignTo> na política, conforme mostrado abaixo:

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

Mensagem de erro

A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:

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

Mensagem de erro de exemplo

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

Captura de ecrã de exemplo

Causa

A implementação do proxy de API falha se o elemento <Source> não estiver definido na política BasicAuthentication usada para a operação de descodificação. O elemento <Source> é obrigatório se o elemento <Operation> for especificado como Decode na política BasicAuthentication.

Diagnóstico

  1. Examine todas as políticas BasicAuthentication usadas no proxy de API. Se existir alguma política em que o elemento <Source> não esteja definido e o elemento <Operation> esteja definido como Decode, essa é a causa do erro. O elemento <Source> é obrigatório se o elemento <Operation> for especificado como Decode na política BasicAuthentication.

    A política BasicAuthentication de exemplo apresentada abaixo é usada para a operação Decode, mas não tem o elemento <Source> definido:

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

    A implementação falha com o seguinte erro:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Resolução

Certifique-se de que o elemento <Source> está definido na política BasicAuthentication quando é usado para a operação Decode.

Para corrigir o exemplo apresentado acima, inclua o elemento <Source> na política, conforme mostrado abaixo:

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