عیب‌یابی خطای استقرار خط‌مشی BasicAuthentication

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

UsernameRequired

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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.

نمونه اسکرین شات

علت

اگر عنصر <User> در خط مشی BasicAuthentication تعریف نشده باشد، استقرار پروکسی API ناموفق است. عنصر <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>

رمز عبور لازم است

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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.

نمونه اسکرین شات

علت

اگر عنصر <Password> در خط مشی BasicAuthentication تعریف نشده باشد، استقرار پروکسی API ناموفق است. عنصر <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 UI یا Edge management API با این پیام خطا انجام نمی شود:

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.

نمونه اسکرین شات

علت

اگر عنصر <AssignTo> در خط‌مشی BasicAuthentication تعریف نشده باشد، استقرار پروکسی API با شکست مواجه می‌شود. عنصر <AssignTo> برای هر دو عملیات Encode و Decode اجباری است.

تشخیص

  1. تمام خط مشی های BasicAuthentication مورد استفاده در پراکسی API را بررسی کنید. اگر خط‌مشی وجود داشته باشد که عنصر <AssignTo> تعریف نشده باشد، دلیل این خطا همین است. عنصر <AssignTo> برای هر دو عملیات Encode و Decode باید در خط مشی BasicAuthentication تعریف شود.

    نمونه خط مشی 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>

منبع مورد نیاز

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

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.

نمونه اسکرین شات

علت

اگر عنصر <Source> در خط مشی BasicAuthentication که برای عملیات رمزگشایی استفاده می شود، تعریف نشده باشد، استقرار پراکسی API با شکست مواجه می شود. اگر <Operation> در خط مشی BasicAuthentication به عنوان Decode مشخص شده باشد، عنصر <Source> اجباری است.

تشخیص

  1. تمام خط مشی های BasicAuthentication مورد استفاده در پراکسی API را بررسی کنید. اگر سیاستی وجود داشته باشد که در آن عنصر <Source> تعریف نشده باشد و عنصر <Operation> به عنوان Decode تعریف شود، آنگاه این دلیل خطا است. اگر <Operation> در خط مشی BasicAuthentication به عنوان Decode مشخص شده باشد، عنصر <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>
    </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>