تحديد المشاكل وحلّها في ما يتعلّق بنشر "سياسة حماية التعبير العادي"

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

InvalidRegularExpression

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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> ضمن سياسة تاجر DnsOverionProtection غير صالح، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد اسم سياسة RegionExpressionProtection من رسالة الخطأ. في رسالة الخطأ التالية، على سبيل المثال، اسم سياسة قاعدته المعتادة هو 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> في ملف XML الذي تعذّرت معالجته لسياسة حماية التعبير العادي. تحقَّق ممّا إذا كان أي من عناصر <Pattern> يتضمّن تعبيرًا عاديًا غير صالح. إذا كان أي من عناصر <Pattern> يتضمّن تعبيرًا عاديًا غير صالح، يكون سبب الخطأ هو السبب.

    على سبيل المثال، تحدِّد السياسة التالية قيمة Pattern> لـ foo){2}، والتي تُعتبر "تعبيرًا عاديًا غير صالح":

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
            <DisplayName>Regular Expression Protection-1</DisplayName>
            <Properties/>
            <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
            <URIPath>
                <Pattern>foo){2}</Pattern>
            </URIPath>
            <Source>request</Source>
        </RegularExpressionProtection>
    

    في المثال أعلاه، التعبير العادي المحدّد في <Pattern> ينقصه أقواس فتح. وبالتالي يعتبر تعبيرًا عاديًا غير صالح. ولذلك يتعذر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

درجة الدقّة

تأكَّد من احتواء كل عنصر <Pattern> في سياسة قاعدتي تعبير عادية على تعبير عادي صالح. يمكنك البحث عن أدوات التعبير العادي المختلفة على الإنترنت أو بلا إنترنت لتصحيح أخطاء التعبيرات العادية. لتصحيح مثال سياسة حماية التعبير العادي الموضح أعلاه، أضف الأقواس المفقودة:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
        <DisplayName>Regular Expression Protection-1</DisplayName>
        <Properties/>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <URIPath>
            <Pattern>(foo){2}</Pattern>
        </URIPath>
        <Source>request</Source>
    </RegularExpressionProtection>

XPathCompilationFailed

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص الخطأ XPathCompilationإخفاق

السبب

إذا لم تكن البادئة أو القيمة المستخدَمة في العنصر <XPath> جزءًا من أي من مساحات الاسم التي تم الإعلان عنها في سياسة URIعبِّر عن الحماية، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

يمكنك العثور على مزيد من المعلومات عن مساحات الاسم وXPath والبادئة في مساحات أسماء XML وكيفية تأثيرها في XPath وLooker.

التشخيص

  1. حدِّد اسم سياسة URIExpressionProtection التي حدث فيها الخطأ وتعبير 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 المحدد في رسالة الخطأ (الخطوة رقم 1 أعلاه).

    على سبيل المثال، تحدِّد السياسة التالية مسار XPath على أنّه /notapigee:foo/notapigee:bar الذي يتطابق مع ما هو مذكور في رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
        <DisplayName>Regular Expression Protection-1</DisplayName>
        <Properties/>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <Source>request</Source>
         <XMLPayload>
             <Namespaces>
                 <Namespace prefix="apigee">http://www.apigee.com</Namespace>
             </Namespaces>
             <XPath>
                 <Expression>/notapigee:foo/notapigee:bar</Expression>
                 <Type>nodeset</Type>
                 <Pattern>pattern</Pattern>
                 <Pattern>pattern2</Pattern>
             </XPath>
         </XMLPayload>
    </RegularExpressionProtection>
    
  3. تحقَّق من العنصرَين <Namespaces> و<Expression> في سياسة قاعدتي لمنع التعبير العادي. إذا كانت سمة <Expression> المحدّدة المُشار إليها في رسالة الخطأ تستخدم بادئة أو قيمة ليست جزءًا من مساحات الاسم المُعلنة في سياسة RegionExpressionProtection، يكون هذا هو سبب الخطأ.

    تجدر الإشارة إلى أنّ السمة <XPath> المحدّدة تستخدم البادئة notapigee في المثال على سياسة iStandardExpressionProtection:

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

    ومع ذلك، لم يتم تعريف البادئة notapigee في أي من عناصر <Namespace>، وبالتالي، تعذَّر تجميع <XPath>، ما يؤدي إلى تعذُّر النشر.

درجة الدقّة

عليك التأكّد من أنّ جميع مساحات الاسم التي يتم استخدامها في عناصر <Expression> ضمن العناصر <XPath> قد تم توضيحها في سياسة RegionExpressionProtection. لإصلاح المثال أعلاه، يمكنك استبدال بادئة notapigee بـ apigee، والتي تم تعريفها في مساحات الاسم:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
    <DisplayName>Regular Expression Protection-1</DisplayName>
    <Properties/>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>request</Source>
     <XMLPayload>
         <Namespaces>
             <Namespace prefix="apigee">http://www.apigee.com</Namespace>
         </Namespaces>
         <XPath>
             <Expression>/apigee:foo/apigee:bar</Expression>
             <Type>nodeset</Type>
             <Pattern>pattern</Pattern>
             <Pattern>pattern2</Pattern>
         </XPath>
     </XMLPayload>
</RegularExpressionProtection>

CannotBeConvertedToNodeset

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص الخطأ لا يمكن أن يتم تحويله إلى عقدة

السبب

إذا كانت "سياسة التعبير العادي" تحتوي على تعبير <XPath> يتم فيه تحديد العنصر <Type> على أنّه nodeset، ولكن لا يمكن تحويل التعبير إلى مجموعة العقدة، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد سياسة URIExpressionProtection التي حدث فيها الخطأ وتعبير 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 المحدد في رسالة الخطأ (الخطوة رقم 1 أعلاه).

    على سبيل المثال، تحدِّد السياسة التالية القيمة count(//apigee:foo)، والتي تتطابق مع ما هو مذكور في رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
            <DisplayName>Regular Expression Protection-1</DisplayName>
            <Properties/>
            <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
            <Source>request</Source>
             <XMLPayload>
                 <Namespaces>
                     <Namespace prefix="apigee">http://www.apigee.com</Namespace>
                 </Namespaces>
                 <XPath>
                     <Expression>count(//apigee:foo)</Expression>
                     <Type>nodeset</Type>
                     <Pattern>pattern</Pattern>
                     <Pattern>pattern2</Pattern>
                 </XPath>
             </XMLPayload>
        </RegularExpressionProtection>
    
  3. افحص القيمة التي تم ضبطها في العنصر <Type> أسفل العنصر <XPath>. إذا كان العنصر <Type> هو nodeset، هذا هو سبب الخطأ.

    في هذا المثال، يكون تعبير XPath هو count() والذي لا يعرض عقدة واحدة أو أكثر. ولذلك، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

درجة الدقّة

إذا تم ضبط العنصر <Type> على مجموعة العُقد، تأكَّد من أنّ نتيجة العنصر <Expression> الذي تم ضبطه في <XPath> هي عقدة واحدة أو أكثر. ويمكنك بدلاً من ذلك تغيير العنصر <Type> إلى قيمة أكثر ملاءمةً استنادًا إلى حالة الاستخدام.

لإصلاح المثال أعلاه، يمكنك تغيير العنصر <Expression> إلى قيمة مختلفة يمكنها عرض العُقد:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
    <DisplayName>Regular Expression Protection-1</DisplayName>
    <Properties/>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>request</Source>
     <XMLPayload>
         <Namespaces>
             <Namespace prefix="apigee">http://www.apigee.com</Namespace>
         </Namespaces>
         <XPath>
             <Expression>/apigee:foo/apigee:bar</Expression>
             <Type>nodeset</Type>
             <Pattern>pattern</Pattern>
             <Pattern>pattern2</Pattern>
         </XPath>
     </XMLPayload>
</RegularExpressionProtection>

JSONPathCompilationFailed

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص الخطأ JSONPathCompilationإخفاق

السبب

إذا كان العنصر <Expression> ضمن العنصر <JSONPath> ضِمن سياسة "حماية التعبير العادي" مضبوطًا على تعبير JSONPath غير صالح، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد اسم سياسة regExpressionProtection الذي حدث فيه الخطأ وتم استخدام تعبير 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 المحدّد في رسالة الخطأ (الخطوة 1 أعلاه).

    على سبيل المثال، تحدِّد السياسة التالية العنصر Expression ضمن العنصر <JSONPath> على أنّه $.store.book[*.author الذي يتطابق مع ما ورد في رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
            <DisplayName>Regular Expression Protection-1</DisplayName>
            <Properties/>
            <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
            <Source>request</Source>
            <JSONPayload>
                 <JSONPath>
                     <Expression>$.store.book[*.author</Expression>
                     <Pattern>REGEX PATTERN</Pattern>
                     <Pattern>REGEX PATTERN</Pattern>
                 </JSONPath>
                </JSONPayload>
        </RegularExpressionProtection>
    
  3. افحص عنصر <Expression> ضمن العنصر <JSONPath> في السياسة. إذا لم يطابق بنية JSONPath، يكون هذا هو سبب الخطأ. في المثال أعلاه، قوس الإغلاق المربّع غير موجود، مما يجعل التعبير غير صالح.

    تعذَّر نشر الخادم الوكيل لواجهة برمجة التطبيقات بما أن تعبير مسار JSON غير صالح.

درجة الدقّة

تأكد من أن قيمة العنصر <Expression> داخل العنصر <JSONPath> في سياسة "حماية التعبير العادي" هي تعبير JSONPath صالح.

لتصحيح المثال الموضّح أعلاه، يمكنك إضافة قوس إغلاق غير متوفّر إلى قيمة العنصر <Expression>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
    <DisplayName>Regular Expression Protection-1</DisplayName>
    <Properties/>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>request</Source>
    <JSONPayload>
         <JSONPath>
             <Expression>$.store.book[*].author</Expression>
             <Pattern>REGEX PATTERN</Pattern>
             <Pattern>REGEX PATTERN</Pattern>
         </JSONPath>
        </JSONPayload>
</RegularExpressionProtection>

NothingToEnforce

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص الخطأ NothingToforce

السبب

إذا لم تحتوي السياسة العادية ExpressionProtection على أي من العناصر <URIPath> أو <QueryParam> أو <Header> أو <FormParam> أو <XMLPayload> أو <JSONPayload>، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

كما هو موضّح في رسالة الخطأ، يجب أن تحتوي سياسة RegionExpressionProtection على عنصر واحد على الأقل من العناصر التالية المضمّنة في السياسة: <URIPath> أو <QueryParam> أو <Header> أو <FormParam> أو <XMLPayload> أو <JSONPayload>.

التشخيص

  1. حدِّد اسم سياسة RegionExpressionProtection التي حدث الخطأ فيها. يمكنك العثور عليه في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو Regular-Expression-Protection-1:.

    RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
    
  2. افحص سياسة "حماية التعبير العادي" التي تعذّر تنفيذها (المحدّدة في الخطوة رقم 1 أعلاه). إذا لم تتضمّن السياسة أي عنصر من العناصر التالية: <URIPath> أو <QueryParam> أو <Header> أو <FormParam> أو <XMLPayload> أو <JSONPayload>، يكون سبب الخطأ هو سببه.

    على سبيل المثال، لا تحتوي سياسة حماية التعبير العادي التالية على أي من العناصر المذكورة أعلاه:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
            <DisplayName>Regular Expression Protection-1</DisplayName>
            <Properties/>
            <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
            <Source>request</Source>
        </RegularExpressionProtection>
    

    نظرًا لعدم وجود أي من العناصر الإلزامية في سياسة استخراج المتغيرات، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

درجة الدقّة

يُرجى التأكُّد من احتواء سياسة regexionProtection على واحد على الأقل من هذه العناصر الإلزامية: <URIPath> أو <QueryParam> أو <Header> أو <FormParam> أو <XMLPayload> أو <JSONPayload>. مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
    <DisplayName>Regular Expression Protection-1</DisplayName>
    <Properties/>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Source>request</Source>
    <JSONPayload>
        <JSONPath>
            <Expression>$.store.book[*].author</Expression>
            <Pattern>REGEX PATTERN</Pattern>
            <Pattern>REGEX PATTERN</Pattern>
        </JSONPath>
    </JSONPayload>
</RegularExpressionProtection>

NoPatternsToEnforce

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص الخطأ NoPatternsToforce

السبب

إذا لم يتضمن أي من عناصر المستوى الأعلى (<URIPath> أو <QueryParam> أو <Header> أو <FormParam> أو <XMLPayload> أو <JSONPayload>) عنصر <Pattern> محدّدًا في سياسة تتضمنغرض الحماية العادية، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد اسم سياسة regExpionProtection [السياسة العادية] التي حدث فيها الخطأ والعنصر الفرعي الذي لا يحتوي على العنصر <Pattern>. يمكنك العثور على هذين العنصرَين في رسالة الخطأ.

    على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو Regular-Expression-Protection-1 والعنصر الفرعي هو XPath:.

    RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
    
  2. تحقَّق من سياسة حماية التعبير العادي غير الناجحة وتحقَّق ممّا إذا كان العنصر الفرعي المحدّد في الخطوة رقم 1 لا يحتوي على العنصر <Pattern>. إذا لم يكن العنصر <Pattern> متاحًا فيه، يكون سبب الخطأ هو السبب.

    على سبيل المثال، لا تتضمن السياسة التالية عنصر <Pattern> في <XPath>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
          <DisplayName>Regular Expression Protection-1</DisplayName>
          <Properties/>
          <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
          <Source>request</Source>
          <XMLPayload>
            <Namespaces>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
            </Namespaces>
            <XPath>
              <Expression>/apigee:Greeting/apigee:User</Expression>
              <Type>string</Type>
            </XPath>
          </XMLPayload>
        </RegularExpressionProtection>
    

    يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات بما أن العنصر <XPath> لا يحتوي على العنصر <Pattern>.

درجة الدقّة

تأكَّد من تحديد قيمة <Pattern> واحدة على الأقل في أي من العناصر <URIPath> أو <QueryParam> أو <Header> أو <FormParam> أو <XMLPayload> أو <JSONPayload>. راجِع سياسة RegionExpressionProtection للحصول على معلومات عن كيفية تحديد العنصر بشكل صحيح.

لإصلاح المثال أعلاه، يمكننا فقط إضافة العنصر <Pattern> إلى العنصر <XPath> أسفل <XMLPayload>:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
  <DisplayName>Regular Expression Protection-1</DisplayName>
  <Properties/>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <Source>request</Source>
  <XMLPayload>
    <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
    </Namespaces>
    <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
    </XPath>
  </XMLPayload>
</RegularExpressionProtection>

NONblankPrefixMappedToفارتم

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص الخطأ NONblankPrefixMappedToفارURI

السبب

يحدث هذا الخطأ إذا كانت سياسة StandardExpressionProtection لها بادئة معرَّفة في العنصر <Namespace> ضمن العنصر <XMLPayload>، ولكن لم يتم تحديد معرّف موارد منتظم (URI).

التشخيص

  1. حدِّد سياسة RegionExpressionProtection التي حدث فيها الخطأ واسم البادئة التي لم يتم ربطها بمعرّف الموارد المنتظم (URI). يمكنك العثور على هذين العنصرَين في رسالة الخطأ.

    على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو حماية التعبير العادي-1 والبادئة apigee:

    RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. في ملف XML الذي تعذّرت معالجته لسياسة حماية التعبير العادي، تأكَّد من أنّ اسم البادئة التي تم ضبطها في العنصر <Namespace> ضمن العنصر <XMLPayload> يتطابق مع اسم البادئة المحدّد في رسالة الخطأ (الخطوة رقم 1 أعلاه).

    على سبيل المثال، تحدِّد السياسة التالية بادئة تُسمّى apigee في العنصر <Namespace>، وتتطابق مع ما يظهر في رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
          <DisplayName>Regular Expression Protection-1</DisplayName>
          <Properties/>
          <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
          <Source>request</Source>
          <XMLPayload>
            <Namespaces>
              <Namespace prefix="apigee"/>
              <Namespace prefix="gmail">http://mail.google.com</Namespace>
            </Namespaces>
            <XPath>
              <Expression>/apigee:Greeting/apigee:User</Expression>
              <Type>string</Type>
              <Pattern>REGEX PATTERN</Pattern>
            </XPath>
          </XMLPayload>
        </RegularExpressionProtection>
    
  3. تحقَّق مما إذا كان العنصر <Namespace> الذي يتضمّن البادئة المحدَّدة في الخطوة رقم 2 يتضمّن معرّف موارد منتظم (URI) صالح. إذا كان معرف الموارد المنتظم (URI) مفقودًا، فهذا هو سبب الخطأ.

    في مثال سياسة حماية التعبير العادي الموضح أعلاه، لاحظ أنه ليس هناك عنوان URI مطابق للعنصر <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" enabled="true" name="Regular-Expression-Protection-1">
  <DisplayName>Regular Expression Protection-1</DisplayName>
  <Properties/>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <Source>request</Source>
  <XMLPayload>
    <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
      <Namespace prefix="gmail">http://mail.google.com</Namespace>
    </Namespaces>
    <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
    </XPath>
  </XMLPayload>
</RegularExpressionProtection>

DuplicatePrefix

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص خطأ Duplicate Prefix

السبب

يحدث هذا الخطأ في حال كانت سياسة قاعدتي تعبير عن حماية تحتوي على البادئة نفسها التي تم تحديدها أكثر من مرة في العنصر <Namespace> ضمن العنصر <XMLPayload>.

على سبيل المثال، يحدث هذا الخطأ بسبب تحديد البادئة apigee مرتين كما هو موضّح أدناه:

<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>

التشخيص

  1. حدِّد سياسة RegionExpressionProtection التي حدث فيها الخطأ واسم البادئة. يمكنك العثور على هذين العنصرَين في رسالة الخطأ.

    على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو حماية التعبير العادي-1 والبادئة apigee:

    RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
    
  2. في ملف XML الذي تعذّرت معالجته لسياسة حماية التعبير العادي، تأكَّد من أنّ اسم البادئة التي تم ضبطها في العنصر <Namespace> ضمن العنصر <XMLPayload> يتطابق مع اسم البادئة المحدّد في رسالة الخطأ (الخطوة رقم 1 أعلاه).

    على سبيل المثال، تحدِّد السياسة التالية بادئة تُسمّى apigee في العنصر <Namespace>، وتتطابق مع ما يظهر في رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
          <DisplayName>Regular Expression Protection-1</DisplayName>
          <Properties/>
          <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
          <Source>request</Source>
          <XMLPayload>
            <Namespaces>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
            </Namespaces>
            <XPath>
              <Expression>/apigee:Greeting/apigee:User</Expression>
              <Type>string</Type>
              <Pattern>REGEX PATTERN</Pattern>
            </XPath>
          </XMLPayload>
        </RegularExpressionProtection>
    
  3. تحديد ما إذا تم تحديد العنصر <Namespace> الذي يحمل البادئة المحدَّدة في الخطوة رقم 2 أكثر من مرة إذا تم تحديده أكثر من مرة، يكون هذا هو سبب الخطأ.

    في مثال سياسة حماية التعبير العادي الموضح أعلاه، لاحظ أنه تم تحديد العنصر <Namespace> مع البادئة apigee مرتين، وبالتالي، تظهر لك رسالة الخطأ:

    Duplicate prefix apigee.
    

درجة الدقّة

تأكَّد من وجود تعريف واحد فقط لكل بادئة في عناصر <Namespace> في سياسة RegionExpressionProtection. مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
      <DisplayName>Regular Expression Protection-1</DisplayName>
      <Properties/>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <Source>request</Source>
      <XMLPayload>
        <Namespaces>
          <Namespace prefix="apigee">http://www.apigee.com</Namespace>
        </Namespaces>
        <XPath>
          <Expression>/apigee:Greeting/apigee:User</Expression>
          <Type>string</Type>
          <Pattern>REGEX PATTERN</Pattern>
        </XPath>
      </XMLPayload>
    </RegularExpressionProtection>

EmptyXPathExpression

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص خطأ BlankXPathExpression

السبب

إذا لم يتم ضبط عنصر <Expression> في سياسة لإضافة مرئيات عادية داخل العنصر <XPath>، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد سياسة حماية التعبير العادي التي تعذّر تنفيذها من رسالة الخطأ. في رسالة الخطأ التالية مثلاً، اسم السياسة هو Region-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" enabled="true" name="Regular-Expression-Protection-1">
      <DisplayName>Regular Expression Protection-1</DisplayName>
      <Properties/>
      <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
      <Source>request</Source>
      <XMLPayload>
        <Namespaces>
          <Namespace prefix="apigee">http://www.apigee.com</Namespace>
        </Namespaces>
        <XPath>
          <Expression></Expression>
          <Type>string</Type>
          <Pattern>REGEX PATTERN</Pattern>
        </XPath>
      </XMLPayload>
    </RegularExpressionProtection>
    

    يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات بسبب وجود عنصر <Expression> فارغ داخل العنصر <XPath>.

درجة الدقّة

احرص على أن تتضمن سياسة URIExpressionProtection عنصر <Expression> غير فارغ وصالح تم تحديده ضمن العنصر <XPath>. مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
  <DisplayName>Regular Expression Protection-1</DisplayName>
  <Properties/>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <Source>request</Source>
  <XMLPayload>
    <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
    </Namespaces>
    <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
    </XPath>
  </XMLPayload>
</RegularExpressionProtection>

EmptyJSONPathExpression

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

لقطة شاشة لمثال على الخطأ

نص خطأ BlankJSONPathExpression

السبب

إذا لم يتم ضبط عنصر <Expression> في سياسة لإضافة مرئيات عادية داخل العنصر <JSONPath>، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد سياسة حماية التعبير العادي التي تعذّر تنفيذها من رسالة الخطأ. في رسالة الخطأ التالية مثلاً، اسم السياسة هو Region-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" standalone="yes"?>
        <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
          <DisplayName>Regular Expression Protection-1</DisplayName>
          <Properties/>
          <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
          <Source>request</Source>
          <JSONPayload>
            <JSONPath>
              <Expression></Expression>
              <Pattern>REGEX PATTERN</Pattern>
              <Pattern>REGEX PATTERN</Pattern>
            </JSONPath>
          </JSONPayload>
        </RegularExpressionProtection>
    

    يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات بسبب وجود عنصر <Expression> فارغ داخل العنصر <JSONPath>.

درجة الدقّة

احرص على أن تتضمن سياسة URIExpressionProtection عنصر <Expression> غير فارغ وصالح تم تحديده ضمن العنصر <JSONPath>. مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
  <DisplayName>Regular Expression Protection-1</DisplayName>
  <Properties/>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <Source>request</Source>
  <JSONPayload>
    <JSONPath>
      <Expression>$.store.book[*].author</Expression>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
    </JSONPath>
  </JSONPayload>
</RegularExpressionProtection>