عیب‌یابی خطای استقرار خط‌مشی «محافظت از عبارت باقاعده»

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

InvalidRegularExpression

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

نمونه پیام خطا

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

نماگرفت خطای نمونه

نوشتار خطای «عبارت باقاعده نامعتبر»

علت

اگر عبارت باقاعده در عنصر <Pattern> از خط‌مشی RegularExpressionProtection معتبر نباشد، استقرار «پراکسی API» ناموفق خواهد بود.

تشخیص

  1. نام خط‌مشی RegularExpressionProtection را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی RegularExpressionProtection، Regular-Expression-Protection-1: است

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. همه <Pattern> عنصر را در زبان نشانه‌گذاری توسعه‌پذیر خط‌مشی «محافظت از عبارت باقاعده» ناموفق بررسی کنید. بررسی کنید که آیا هیچ‌یک از عناصر <Pattern> عبارت باقاعده نامعتبر دارد یا نه. اگر هریک از عناصر <Pattern> عبارت باقاعده نامعتبر داشته باشد، دلیل خطا همین است.

    برای مثال، خط‌مشی زیر مقدار Pattern> از foo){2} را مشخص می‌کند که «عبارت باقاعده نامعتبر» درنظر گرفته می‌شود:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
            Ign<oreUnresolvedVa<riables>false/I<gnoreUnresolvedVar<iables>
       <     URIPath&<gt;
                Pattern>foo){2}/Pattern>
            /URIPath>
            Source>request/Source>
        /RegularExpressionProtection>

    در مثال بالا، عبارت باقاعده مشخص‌شده در <Pattern> پرانتز باز ندارد. بنابراین به‌عنوان عبارت باقاعده نامعتبر درنظر گرفته می‌شود. بنابراین استقرار «پراکسی API» ناموفق است.

وضوح

مطمئن شوید که هر عنصر <Pattern> در خط‌مشی «محافظت با عبارت باقاعده» حاوی عبارت باقاعده معتبر باشد. می‌توانید ابزارهای مختلف آنلاین یا آفلاین regex را برای اشکال‌زدایی عبارات باقاعده خود جستجو کنید. برای اصلاح خط‌مشی «محافظت از عبارت باقاعده» مثال نشان‌داده‌شده در بالا، پرانتزهای ازدست‌رفته را اضافه کنید:

<?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
        DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
        Proper<ties/>
        Ign<oreUnresolvedVar<iables>false/Ig<noreUnresolvedVari<ables>
    <    URIPath&g<t;
            Pattern>(foo){2}/Pattern>
        /URIPath>
        Source>request/Source>
    /RegularExpressionProtection>

XPathCompilationFailed

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Failed to compile xpath xpath_expression. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

نمونه پیام خطا

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

نماگرفت خطای نمونه

نوشتار خطای XPathCompilationFailed

علت

اگر پیشوند یا مقدار استفاده‌شده در عنصر <XPath> بخشی از هیچ‌یک از فضای نام‌های اعلام‌شده در خط‌مشی RegularExpressionProtection نباشد، استقرار پراکسی API ناموفق خواهد بود.

می‌توانید اطلاعات بیشتری درباره فضای نام، XPath، و پیشوند در فضاهای نام XML و نحوه تأثیر آن‌ها بر XPath و XSLT پیدا کنید.

تشخیص

  1. نام خط‌مشی RegularExpressionProtection که خطا در آن رخ داده است و «عبارت XPath» استفاده‌شده را شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام خط‌مشی Regular-Expression-Protection-1 و «عبارت XPath» /notapigee:foo/notapigee:bar: است

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. در XML خط‌مشی «محافظت از عبارت باقاعده» ناموفق، تأیید کنید که XPath تنظیم‌شده در عنصر Expression با XPath شناسایی‌شده در پیام خطا مطابقت داشته باشد (مرحله ۱ در بالا).

    برای مثال، خط‌مشی زیر XPath را به‌عنوان /notapigee:foo/notapigee:bar مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
        Di<splayName>Regular Expression< Protection-1/DisplayName>
      <  Properties/&<gt;
        Ignore<UnresolvedVariables&g<t;false/IgnoreUnresolvedV<ariables>
        Source>request/Source>
     <    XMLPayload>
      <       Namespaces>
    <             Namespa<ce prefix="apigee">http://<www.apigee.com/Namespace&g<t;
             </Namespaces>
        <     XPath>
    <             Expression<>/notapigee:f<oo/notapigee:bar/Ex<pression>
    <             <Type>nodeset/Type>
                 Pattern>pattern/Pattern>
                 Pattern>pattern2/Pattern>
             /XPath>
         /XMLPayload>
    /RegularExpressionProtection>
  3. عناصر <Namespaces> و <Expression> را در خط‌مشی RegularExpressionProtection بررسی کنید. اگر <Expression> مشخص‌شده در پیام خطا از پیشوند یا مقداری استفاده می‌کند که بخشی از فضای نام‌های اعلام‌شده در خط‌مشی «محافظت از عبارت باقاعده» نیست، این دلیل خطا است.

    توجه داشته باشید که <XPath> خاص از پیشوند notapigee در مثال خط‌مشی «محافظت با عبارت باقاعده» استفاده می‌کند:

    <Expression>/notapigee:foo/notapigee:<bar/Expression>

    بااین‌حال، پیشوند notapigee در هیچ‌یک از عناصر <Namespace> تعریف نشده است؛ بنابراین، گردآوری <XPath> ناموفق است و منجر به ناموفق بودن استقرار می‌شود.

وضوح

مطمئن شوید همه فضاهای نامی که در عناصر <Expression> تحت عناصر <XPath> استفاده می‌شوند در خط‌مشی RegularExpressionProtection اعلام شده باشند. برای اصلاح مثال بالا، می‌توانید پیشوند notapigee را با apigee که در فضای نام‌ها تعریف شده است جایگزین کنید:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignore<UnresolvedVariables&g<t;false/IgnoreUnresolvedV<ariables>
    Source>request/Source>
 <    XMLPayload>
  <       Namespaces>
<             Namespa<ce prefix="apigee">h<ttp://www.apigee.com/Names<pace>
   <      /Namespaces><;
         XPat<h>
             Expr<ession>/apige<e:foo/apigee:bar/Ex<pression>
<             <Type>nodeset/Type>
             Pattern>pattern/Pattern>
             Pattern>pattern2/Pattern>
         /XPath>
     /XMLPayload>
/RegularExpressionProtection>

CannotBeConvertedToNodeset

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Result of xpath xpath_expression cannot be converted to nodeset. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

نمونه پیام خطا

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

نماگرفت خطای نمونه

نوشتار خطای CannotBeConvertedToNodeset

علت

اگر «خط‌مشی عبارت باقاعده» عبارت <XPath> داشته باشد که عنصر <Type> آن به‌عنوان nodeset تعریف شده باشد، اما عبارت نتواند به nodeset تبدیل شود، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی RegularExpressionProtection را که خطا در آن رخ داده است و «عبارت XPath» را که نمی‌تواند به مجموعه گره تبدیل شود شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام خط‌مشی Regular-Expression-Protection-1 و «عبارت XPath» count(//apigee:foo): است

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. در XML خط‌مشی «محافظت از عبارت باقاعده» ناموفق، تأیید کنید که XPath تنظیم‌شده در عنصر <Expression> عنصر <XPath> با XPath شناسایی‌شده در پیام خطا مطابقت داشته باشد (مرحله ۱ در بالا).

    برای مثال، خط‌مشی زیر count(//apigee:foo) را مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
        <    IgnoreUnresolv<edVariables>false/Igno<reUnresolvedVariables>
       <     Source>request/Source>
             XMLP<ayload>
                 N<amespaces>
                <     Namespace prefix=&q<uot;apigee">http://www<.apigee.com/Namespace>
        <         /Na<mespaces>
               <  XPath>
       <              Expression><;count(//apigee:<foo)/Expression>
       <              Typ<e>nodeset/Type<>
                     Pattern>pattern/Pattern>
                     Pattern>pattern2/Pattern>
                 /XPath>
             /XMLPayload>
        /RegularExpressionProtection>
  3. مجموعه مقدار را در عنصر <Type> زیر عنصر <XPath> بررسی کنید. اگر عنصر <Type> nodeset باشد، دلیل خطا همین است.

    در این مثال، عبارت XPath‏ count()‎ است که یک یا چند گره را برنمی‌گرداند. بنابراین، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

اگر عنصر <Type> روی nodeset تنظیم شده است، مطمئن شوید که نتیجه عنصر <Expression> تنظیم‌شده در <XPath> یک یا چند گره است. یا اینکه عنصر <Type> را به مقدار مناسب‌تری براساس مورد استفاده‌تان تغییر دهید.

برای اصلاح مثال بالا، می‌توانید عنصر <Expression> را به مقدار دیگری که می‌تواند گره‌ها را برگرداند تغییر دهید:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignore<UnresolvedVariables&g<t;false/IgnoreUnresolvedV<ariables>
    Source>request/Source>
 <    XMLPayload>
  <       Namespaces>
<             Namespa<ce prefix="apigee">h<ttp://www.apigee.com/Names<pace>
   <      /Namespaces><;
         XPat<h>
             Expr<ession>/apige<e:foo/apigee:bar/Ex<pression>
<             <Type>nodeset/Type>
             Pattern>pattern/Pattern>
             Pattern>pattern2/Pattern>
         /XPath>
     /XMLPayload>
/RegularExpressionProtection>

JSONPathCompilationFailed

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision revision_number to environment
RegularExpressionProtection policy_name: Failed to compile jsonpath jsonpath_expression Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.

نمونه پیام خطا

Error Deploying Revision 1 to test
RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.

نماگرفت خطای نمونه

نوشتار خطای JSONPathCompilationFailed

علت

اگر عنصر <Expression> در عنصر <JSONPath> خط‌مشی «محافظت از عبارت باقاعده» روی عبارت نامعتبر JSONPath تنظیم شده باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. نام خط‌مشی RegularExpressionProtection را که خطا در آن رخ داده است و «عبارت JSONPath» نامعتبر در آن استفاده شده است شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام خط‌مشی Regular-Expression-Protection-1 و «عبارت JSONPath» $.store.book[*.author: است

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
  2. در XML خط‌مشی «محافظت از عبارت باقاعده» ناموفق، تأیید کنید که JSONPath تنظیم‌شده در عنصر Expression با JSONPath شناسایی‌شده در پیام خطا مطابقت داشته باشد (مرحله ۱ در بالا).

    برای مثال، خط‌مشی زیر عنصر Expression را در عنصر <JSONPath> به‌عنوان $.store.book[*.author مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
        <    IgnoreUnresol<vedVariables>false/Igno<reUnresolvedVariables>
     <       Source>request/Source&<gt;
            JSONPayload>
      <           JSONPath&g<t;
                     Express<ion>$.store.book[*<.author/Expression>
    <                 Patter<n>REGEX PATTERN</Pattern>
                     Pattern>REGEX PATTERN/Pattern>
                 /JSONPath>
                /JSONPayload>
        /RegularExpressionProtection>
  3. عنصر <Expression> را در عنصر <JSONPath> در خط‌مشی بررسی کنید. اگر با دستورگان JSONPath مطابقت نداشته باشد، این دلیل خطا است. در مثال بالا، قلاب مربع بسته وجود ندارد که باعث می‌شود عبارت نامعتبر شود.

    ازآنجایی‌که «عبارت مسیر JSON» نامعتبر است، استقرار «پراکسی API» ناموفق است.

وضوح

مطمئن شوید که مقدار عنصر <Expression> در عنصر <JSONPath> در خط‌مشی «محافظت از عبارت باقاعده» عبارت JSONPath معتبری باشد.

برای اصلاح کردن مثال نشان‌داده‌شده در بالا، می‌توانید کروشه بسته را به مقدار عنصر <Expression> اضافه کنید:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignor<eUnresolvedVariables&g<t;false/IgnoreUnresolve<dVariables>
    Source>requ<est/Source>
    JSONPay<load>
         JSO<NPath>
             <Expression>$.store<.book[*].author/Exp<ression>
       <      Pattern&<gt;REGEX PATTERN/Pattern>
             Pattern>REGEX PATTERN/Pattern>
         /JSONPath>
        /JSONPayload>
/RegularExpressionProtection>

NothingToEnforce

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

نمونه پیام خطا

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

نماگرفت خطای نمونه

نوشتار خطای NothingToEnforce

علت

اگر خط‌مشی RegularExpressionProtection هیچ‌یک از عناصر <URIPath>، <QueryParam>، <Header>، <FormParam>، <XMLPayload>، یا <JSONPayload> را نداشته باشد، استقرار «پراکسی API» ناموفق خواهد بود.

همان‌طور که در پیام خطا نشان داده شده است، خط‌مشی RegularExpressionProtection باید حداقل یکی از این عناصر را در خط‌مشی داشته باشد: <URIPath>، <QueryParam>، <Header>، <FormParam>، <XMLPayload>، یا <JSONPayload>.

تشخیص

  1. نام خط‌مشی RegularExpressionProtection را که خطا در آن رخ داده است شناسایی کنید. می‌توانید آن را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی Regular-Expression-Protection-1: است

    RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
  2. خط‌مشی «محافظت از عبارت باقاعده» ناموفق را (که در مرحله ۱ بالا شناسایی شده است) بررسی کنید. اگر خط‌مشی حتی یکی از عناصر زیر را نداشته باشد: <URIPath>، <QueryParam>، <Header>، <FormParam>، <XMLPayload>، یا <JSONPayload>، آنگاه این دلیل خطا است.

    برای مثال، خط‌مشی «محافظت از عبارت باقاعده» زیر هیچ‌یک از عناصر ذکرشده در بالا را ندارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=&q<uot;true" name="Regular-Expressio<n-Protection-1"&g<t;
            DisplayNam<e>Regular Expression Protect<ion-1/DisplayName>
            Proper<ties/>
        <    IgnoreUnr<esolvedVariables>false/IgnoreUnresolvedVariables>
            Source>request/Source>
        /RegularExpressionProtection>

    ازآنجایی‌که هیچ‌یک از عناصر الزامی در خط‌مشی «استخراج متغیرها» وجود ندارد، استقرار پراکسی API ناموفق است.

وضوح

مطمئن شوید که خط‌مشی RegularExpressionProtection حداقل یکی از این عناصر اجباری را داشته باشد: <URIPath>، <QueryParam>، <Header>، <FormParam>، <XMLPayload>، یا <JSONPayload>. برای مثال:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enable<d="true" name="Regular-Expre<ssion-Protection-1<">
    Di<splayName>Regular Expression< Protection-1/DisplayName>
  <  Properties/&<gt;
    Ignor<eUnresolvedVariables&<gt;false/IgnoreUnresol<vedVariables>
    Source>re<quest/Source>
    JSON<Payload>
        J<SONPath>
          <  Expression>$.sto<re.book[*].author/<Expression>
<            Pa<ttern>REGEX PATTERN/Pattern>
            Pattern>REGEX PATTERN/Pattern>
        /JSONPath>
    /JSONPayload>
/RegularExpressionProtection>

NoPatternsToEnforce

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: No patterns to enforce in payload_name.

نمونه پیام خطا

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.

نماگرفت خطای نمونه

نوشتار خطای NoPatternsToEnforce

علت

اگر هریک از عناصر سطح بالا (<URIPath>، <QueryParam>، <Header>، <FormParam>، <XMLPayload>، یا <JSONPayload>) عنصر <Pattern> را در خط‌مشی RegularExpressionProtection تعریف نکرده باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. نام خط‌مشی RegularExpressionProtection را که خطا در آن رخ داده است و عنصر فرزندی را که عنصر <Pattern> را ندارد شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام خط‌مشی Regular-Expression-Protection-1 و عنصر فرزند XPath: است

    RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
  2. خط‌مشی «محافظت از عبارت باقاعده» ناموفق را بررسی کنید و مطمئن شوید عنصر فرزند شناسایی‌شده در مرحله ۱ عنصر <Pattern> را نداشته باشد. اگر عنصر <Pattern> در آن وجود ندارد، دلیل خطا همین است.

    برای مثال، خط‌مشی زیر عنصر <Pattern> را در <XPath> ندارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
          Source>request/Source><;
          XMLPayload&g<t;
            Namespaces<>
              Na<mespace prefix="apigee">ht<tp://www.apigee.com/Nam<espace>
    <        /Namesp<aces>
         <   XPath>
        <      Expression>/apigee:Greeting/apigee:User/Expression>
              Type>string/Type>
            /XPath>
          /XMLPayload>
        /RegularExpressionProtection>

    ازآنجایی‌که عنصر <XPath> عنصر <Pattern> را ندارد، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید که هریک از عناصر <URIPath>،‏ <QueryParam>،‏ <Header>،‏ <FormParam>،‏ <XMLPayload>، یا <JSONPayload> حداقل یک <Pattern> مشخص‌شده داشته باشد. برای اطلاعات درباره نحوه مشخص کردن صحیح عنصر، به خط‌مشی RegularExpressionProtection مراجعه کنید.

برای اصلاح مثال بالا، می‌توانیم عنصر <Pattern> را به عنصر <XPath> در زیر <XMLPayload> اضافه کنیم:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
  Source>reque<st/Source>
  <XMLPayload>
  <  Namespaces&<gt;
      Namespace prefix="apigee<">http://ww<w.apigee.co<m/Namespace&g<t;
    /Namespaces><;
    XPath><;
      Ex<pression>/<apigee:Greeting/apigee:User/Expression>
      Type>string/Type>
      Pattern>REGEX PATTERN/Pattern>
    /XPath>
  /XMLPayload>
/RegularExpressionProtection>

NONEmptyPrefixMappedToEmptyURI

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.

نمونه پیام خطا

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.

نماگرفت خطای نمونه

نوشتار خطای NONEmptyPrefixMappedToEmptyURI

علت

این خطا زمانی رخ می‌دهد که خط‌مشی RegularExpressionProtection پیشوندی را در عنصر <Namespace> تحت عنصر <XMLPayload> تعریف کرده باشد، اما هیچ نشانی وب یکنواختی تعریف نشده باشد.

تشخیص

  1. خط‌مشی RegularExpressionProtection را که خطا در آن رخ داده است و نام پیشوندی را که به نشانی وب نگاشت نشده است شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام خط‌مشی «محافظت از عبارت باقاعده-۱» و پیشوند «apigee» است:

    RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
  2. در فایل XML خط‌مشی «محافظت از عبارت باقاعده» نامجموعه پیشوندی را که در عنصر <Namespace> زیر عنصر <XMLPayload> تنظیم شده است بررسی کنید و مطمئن شوید با نام پیشوندی که در پیام خطا مشخص شده است مطابقت داشته باشد (مرحله ۱ در بالا).

    برای مثال، خط‌مشی زیر پیشوندی به نام apigee را در عنصر <Namespace> مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
          Source>request/<Source>
          XMLPayload>
            Namespa<ces>
              Na<mespace prefix="<apigee"/><
              Namespace prefix="gmail<">http://mail.g<oogle.com/N<amespace>
        <    /Namespaces>
     <       XPath>
     <         Expre<ssion>/apigee:<Greeting/apigee:User/Expression>
              Type>string/Type>
              Pattern>REGEX PATTERN/Pattern>
            /XPath>
          /XMLPayload>
        /RegularExpressionProtection>
  3. اعتبارسنجی کنید که آیا عنصر <Namespace> با پیشوند مشخص‌شده در مرحله #۲ دارای نشانی وب معتبر است یا نه. اگر نشانی وب وجود نداشته باشد، دلیل خطا همین است.

    در خط‌مشی «محافظت از عبارت باقاعده» نشان‌داده‌شده در بالا، توجه کنید که هیچ نشانی وب متناظری برای عنصر <Namespace> با پیشوند apigee وجود ندارد؛ بنابراین، این خطا را دریافت می‌کنید:

    Non-empty prefix apigee cannot be mapped to empty uri.

وضوح

مطمئن شوید که همه <Namespace>عناصر تعریف‌شده با پیشوند دارای شناسه URI مربوطه در خط‌مشی «استخراج متغیرها» باشند. برای مثال:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
  Source>reque<st/Source>
  XM<LPayload>
    Namespaces>
      Namespace< prefix="ap<igee">htt<p://www.apige<e.com/Namespace>
      Namespace pre<fix="gmail&quo<t;>http:<//mail.google<.com/Namespace>
  <  /Namespaces&<gt;
    XP<ath>
     < Expression>/apigee:Greeting/apigee:User/Expression>
      Type>string/Type>
      Pattern>REGEX PATTERN/Pattern>
    /XPath>
  /XMLPayload>
/RegularExpressionProtection>

DuplicatePrefix

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Duplicate prefix prefix_name.

نمونه پیام خطا

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.

نماگرفت خطای نمونه

نوشتار خطای پیشوند تکراری

علت

این خطا زمانی رخ می‌دهد که خط‌مشی RegularExpressionProtection پیشوندی یکسان را بیش‌از یک‌بار در عنصر <Namespace> تحت عنصر <XMLPayload> تعریف کرده باشد.

برای مثال، این خطا رخ می‌دهد زیرا پیشوند apigee دوبار تعریف شده است، همان‌طور که در زیر نشان داده شده است:

<Namespace prefix="ap>igee"http://www.<apigee.com>/<Namespace
Namespace prefi>x="apigee"h<ttp://www.apigee.com/Namespace>

تشخیص

  1. خط‌مشی RegularExpressionProtection را که خطا در آن رخ داده است و نام پیشوند را شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام خط‌مشی «محافظت از عبارت باقاعده-۱» و پیشوند «apigee» است:

    RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
  2. در فایل XML خط‌مشی «محافظت از عبارت باقاعده» نامجموعه پیشوندی را که در عنصر <Namespace> زیر عنصر <XMLPayload> تنظیم شده است بررسی کنید و مطمئن شوید با نام پیشوندی که در پیام خطا مشخص شده است مطابقت داشته باشد (مرحله ۱ در بالا).

    برای مثال، خط‌مشی زیر پیشوندی به نام apigee را در عنصر <Namespace> مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
          Source>request/Source><;
          XMLPayload><
            Namespaces>
              Namespace pre<fix="apigee&quo<t;>http://www.apig<ee.com/Namespace&<gt;
              Namespace prefix="ap<igee">http://ww<w.apigee.co<m/Namespace>
     <       /Namespaces><;
            XPath><;
              Ex<pression>/apig<ee:Greeting/apigee:User/Expression>
              Type>string/Type>
              Pattern>REGEX PATTERN/Pattern>
            /XPath>
          /XMLPayload>
        /RegularExpressionProtection>
  3. تعیین کنید که آیا عنصر <Namespace> با پیشوند مشخص، که در مرحله #۲ شناسایی شده است، بیش از یک بار تعریف شده است یا نه. اگر بیش از یک بار تعریف شده باشد، این دلیل خطا است.

    در خط‌مشی «محافظت از عبارت باقاعده» نشان‌داده‌شده در بالا، توجه کنید که عنصر <Namespace> با پیشوند apigee دو بار تعریف شده است؛ بنابراین، این خطا را دریافت می‌کنید:

    Duplicate prefix apigee.

وضوح

مطمئن شوید که در <Namespace> عناصر در خط‌مشی RegularExpressionProtection فقط یک تعریف برای هر پیشوند وجود داشته باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
      Displa<yName>Regular Expression Pro<tection-1/DisplayName>
      Pr<operties/>
<      IgnoreUnr<esolvedVariables><false/IgnoreUnresolved<Variables>
      Source>request/Source><;
      XMLPayload&g<t;
        Namespaces<>
          Na<mespace prefix="apigee">ht<tp://www.apigee.com/Nam<espace>
<        /Namespac<es>
        XPath&<gt;
          Expr<ession>/api<gee:Greeting/apig<ee:User/Expression>
          Type>string/Type>
          Pattern>REGEX PATTERN/Pattern>
        /XPath>
      /XMLPayload>
    /RegularExpressionProtection>

EmptyXPathExpression

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Empty XPath expression.

نمونه پیام خطا

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.

نماگرفت خطای نمونه

نوشتار خطای EmptyXPathExpression

علت

اگر خط‌مشی RegularExpressionProtection عنصر <Expression> را در عنصر <XPath> تنظیم نکرده باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «محافظت از عبارت باقاعده» ناموفق را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی «Regular-Expression-Protection-1» است:

    RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
  2. در XML خط‌مشی «محافظت از عبارت باقاعده» ناموفق، تعیین کنید که آیا عنصر <XMLPayload> با عنصر فرزند <XPath> وجود دارد که عنصر <Expression> در آن تعریف نشده باشد، یا عنصر <Expression> روی هیچ مقداری تنظیم نشده باشد. اگر این‌طور است، دلیل خطا همین است.

    برای مثال، در اینجا خط‌مشی «محافظت از عبارت باقاعده» را می‌بینید که عنصر <XMLPayload> دارد:

    <?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
    RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
    <  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
      Properti<es/>
      I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
      Source>reque<st/Source>
      <XMLPayload>
      <  Namespaces&<gt;
          N<amespace prefix=&qu<ot;apigee&q<uot;>http:<//www.apigee.com/Name<space>
        </Namespace<s>
        XPa<th>
          Expression>/Expression>
          Type>string/Type>
          Pattern>REGEX PATTERN/Pattern>
        /XPath>
      /XMLPayload>
    /RegularExpressionProtection>

    ازآنجایی‌که عنصر <Expression> خالی در عنصر <XPath> وجود دارد، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید که خط‌مشی RegularExpressionProtection عنصر <Expression> غیرخالی و معتبری دارد که در عنصر <XPath> تعریف شده است. برای مثال:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedV<ariables>false/<IgnoreUnresolvedVariables>
  Source>reque<st/Source>
  <XMLPayload>
  <  Namespaces&<gt;
      Namespace prefix="apigee<">http://ww<w.apigee.co<m/Namespace&g<t;
    /Namespaces><;
    XPath><;
      Ex<pression>/<apigee:Greeting/apigee:User/Expression>
      Type>string/Type>
      Pattern>REGEX PATTERN/Pattern>
    /XPath>
  /XMLPayload>
/RegularExpressionProtection>

EmptyJSONPathExpression

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Empty JSONPath expression.

نمونه پیام خطا

Error Saving Revision 1
RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.

نماگرفت خطای نمونه

نوشتار خطای EmptyJSONPathExpression

علت

اگر خط‌مشی RegularExpressionProtection عنصر <Expression> را در عنصر <JSONPath> تنظیم نکرده باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «محافظت از عبارت باقاعده» ناموفق را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی «Regular-Expression-Protection-1» است:

    Error Saving Revision 1
    RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
  2. در XML خط‌مشی «محافظت از عبارت باقاعده» ناموفق، تعیین کنید که آیا عنصر <JSONPayload> با عنصر فرزند <JSONPath> وجود دارد که عنصر <Expression> در آن تعریف نشده باشد، یا عنصر <Expression> روی هیچ مقداری تنظیم نشده باشد. اگر این‌طور است، این دلیل خطا است.

    برای مثال، در اینجا خط‌مشی «محافظت از عبارت باقاعده» را می‌بینید که عنصر <JSONPayload> دارد:

    <?xml version="1.0" encoding="UTF-8" sta<ndalone="yes"?>
        RegularExpressionProtection async="false" continueOnError="false" enabled=<"true" name="Regular-Express<ion-Protection-1&quo<t;>
          Displa<yName>Regular Expression Pro<tection-1/DisplayName>
          Pr<operties/>
    <      IgnoreUnr<esolvedVariables>f<alse/IgnoreUnresolve<dVariables&<gt;
          Source>req<uest/Source>
         < JSONPayload>
       <     JSONPath>
       <       Expression&<gt;/Expression><;
              Patter<n>REGEX PATTERN/Pattern>
              Pattern>REGEX PATTERN/Pattern>
            /JSONPath>
          /JSONPayload>
        /RegularExpressionProtection>

    ازآنجایی‌که عنصر <Expression> خالی در عنصر <JSONPath> وجود دارد، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید که خط‌مشی RegularExpressionProtection عنصر <Expression> غیرخالی و معتبری دارد که در عنصر <JSONPath> تعریف شده است. برای مثال:

<?xml version="1.0" encoding="UTF-8"< standalone="yes"?>
RegularExpressionProtection async="false" continueOnError="false" enab<led="true" name="Regular-Exp<ression-Protecti<on-1">
<  DisplayName>Regular Expres<sion Protection-1/DisplayName&<gt;
  Properti<es/>
  I<gnoreUnresolvedVa<riables>false</IgnoreUnresolvedVariables>
  <Source>request/S<ource>
  JSONPaylo<ad>
    JSONP<ath>
      Express<ion>$.store<.book[*].auth<or/Expression&<gt;
      Pattern>REGEX PATTERN/Pattern>
      Pattern>REGEX PATTERN/Pattern>
    /JSONPath>
  /JSONPayload>
/RegularExpressionProtection>