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

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

نام کاربریالزامی

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت 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.

مثال اسکرین شات

علت

اگر عنصر <User> در سیاست BasicAuthentication تعریف نشده باشد، پیاده‌سازی API Proxy با شکست مواجه می‌شود. عنصر <User> برای هر دو عملیات رمزگذاری و رمزگشایی اجباری است.

تشخیص

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

    نمونه سیاست 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 برای عملیات رمزگذاری یا رمزگشایی تعریف شده باشد.

برای اصلاح مثال نشان داده شده در بالا، عنصر 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 یا رابط مدیریت 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.

مثال اسکرین شات

علت

اگر عنصر <Password> در سیاست BasicAuthentication تعریف نشده باشد، پیاده‌سازی API Proxy با شکست مواجه می‌شود. عنصر <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>

اختصاص به مورد نیاز

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت 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.

مثال اسکرین شات

علت

اگر عنصر <AssignTo> در سیاست BasicAuthentication تعریف نشده باشد، پیاده‌سازی API Proxy با شکست مواجه می‌شود. عنصر <AssignTo> برای هر دو عملیات رمزگذاری و رمزگشایی اجباری است.

تشخیص

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

برای اصلاح مثال نشان داده شده در بالا، عنصر 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 یا رابط مدیریت 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.

مثال اسکرین شات

علت

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

تشخیص

  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> هنگام استفاده برای عملیات Decode در سیاست BasicAuthentication تعریف شده باشد.

برای اصلاح مثال نشان داده شده در بالا، عنصر 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>