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

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

Имя пользователя обязательно

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

Развертывание 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> является обязательным как для операций кодирования, так и для операций декодирования.

Диагноз

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

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

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

Требуется пароль

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

Развертывание 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> является обязательным как для операций кодирования, так и для операций декодирования.

Диагноз

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

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

Чтобы исправить приведенный выше пример, добавьте элемент < 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> является обязательным как для операций кодирования, так и для операций декодирования.

Диагноз

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

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

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