Устранение неполадок при развертывании правила BasicAuthentication

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

UserNameRequired

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание прокси API завершится неудачей, если элемент <User> не определен в правиле BasicAuthentication. Элемент <User> обязателен для операций Encode и Decode.

диагностика;

  1. Проверьте все правила BasicAuthentication, используемые в прокси-сервере API. Если в каких-либо правилах не указан элемент <User>, это и является причиной ошибки. Элемент <User> является обязательным в правиле BasicAuthentication для операций Encode или Decode.

    В приведенном ниже примере правила BasicAuthentication используется операция Encode, но элемент <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>
    

    При развертывании возникает следующая ошибка:

    BasicAuthenticationPolicy: Username element must be present for Encode operation.
    

Разрешение

Убедитесь, что элемент <User> определен в правиле BasicAuthentication для операции Encode или Decode.

Чтобы исправить пример, приведенный выше, добавьте элемент <User> в правила, как показано ниже:

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

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание прокси API завершится неудачей, если элемент <Password> не определен в правиле BasicAuthentication. Элемент <Password> обязателен для операций Encode и Decode.

диагностика;

  1. Проверьте все правила BasicAuthentication, используемые в прокси-сервере API. Если в каком-либо правиле не определен элемент <Password>, это и является причиной ошибки. Элемент <Password> является обязательным в правиле BasicAuthentication для операций Encode или Decode.

    В приведенном ниже примере правила BasicAuthentication используется операция Encode, но элемент <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>
    

    При развертывании возникает следующая ошибка:

    BasicAuthenticationPolicy: Password element must be present for Encode operation.
    

Разрешение

Убедитесь, что элемент <Password> определен в правиле BasicAuthentication для операции Encode или Decode.

Чтобы исправить пример, приведенный выше, добавьте элемент <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"/>
    <Password ref="BasicAuth.credentials.password"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

AssignToRequired

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание прокси API завершится неудачей, если элемент <AssignTo> не определен в правиле BasicAuthentication. Элемент <AssignTo> обязателен для операций Encode и Decode.

диагностика;

  1. Проверьте все правила BasicAuthentication, используемые в прокси-сервере API. Если в каком-либо правиле не определен элемент <AssignTo>, это и является причиной ошибки. Элемент <AssignTo> обязательно должен быть определен в правиле BasicAuthentication для операций Encode и Decode.

    В приведенном ниже примере правила BasicAuthentication используется операция Encode, но элемент <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>
    

    При развертывании возникает следующая ошибка:

    BasicAuthenticationPolicy: AssignTo element must be present for Encode operation.
    

Разрешение

Убедитесь, что элемент <AssignTo> определен в правиле BasicAuthentication для операции Encode или Decode.

Чтобы исправить пример, приведенный выше, добавьте элемент <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"/>
    <AssignTo createNew="false">request.header.Authorization</AssignTo>
</BasicAuthentication>

SourceRequired

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание прокси API завершится неудачно, если элемент <Source> не определен в правиле BasicAuthentication, которое используется для операции декодирования. Элемент <Source> является обязательным, если в правилах BasicAuthentication для элемента <Operation> указано значение Decode.

диагностика;

  1. Проверьте все правила BasicAuthentication, используемые в прокси-сервере API. Если в каком-либо правиле элемент <Source> не определен, а элемент <Operation> определен как Decode, то это и является причиной ошибки. Элемент <Source> является обязательным, если в правилах BasicAuthentication для элемента <Operation> указано значение Decode.

    Приведенный ниже пример правила BasicAuthentication используется для операции Decode, но в нем не определен элемент <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>
    

    При развертывании возникает следующая ошибка:

    BasicAuthenticationPolicy: Source element must be present for Decode operation.
    

Разрешение

Убедитесь, что элемент <Source> определен в правиле BasicAuthentication, если он используется для операции Decode.

Чтобы исправить пример, приведенный выше, добавьте элемент <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>
    <Source>request.header.Authorization</Source>
</BasicAuthentication>