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

أنت تعرض مستندات 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.

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

نص الخطأ غيرedUserExpression

السبب

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

التشخيص

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

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

نص الخطأ XPathCompilationFound

السبب

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

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

التشخيص

  1. حدِّد اسم سياسة NaturalExpressionProtection التي حدث فيها الخطأ، بالإضافة إلى تعبير 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> في سياسة PrimaryExpressionProtection. إذا كانت السمة <Expression> المحدّدة المُشار إليها في رسالة الخطأ تستخدم بادئة أو قيمة ليست جزءًا من مساحات الاسم المذكورة في سياسة PrimaryExpressionProtection، يكون هذا هو سبب الخطأ.

    لاحِظ أنّ عملية <XPath> المحدّدة تستخدم البادئة notapigee في مثال StandardExpressionProtection:

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

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

الدقة

تأكَّد من الإفصاح عن جميع مساحات الاسم المُستخدَمة في عناصر <Expression> ضمن العناصر <XPath> في سياسة plainExpressionProtection. لإصلاح المثال أعلاه، يمكنك استبدال البادئة 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.

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

نص الخطأ NOTBeConvertToNodeset

السبب

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

التشخيص

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

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

نص الخطأ JSONPathCompilationFound

السبب

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

التشخيص

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

السبب

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

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

التشخيص

  1. حدِّد اسم سياسة NaturalExpressionProtection التي حدث فيها الخطأ. يمكنك العثور عليه في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو 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>

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

الدقة

تأكَّد من أنّ سياسة حماية الحقوق العادية تحتوي على أحد هذه العناصر الإلزامية على الأقل: <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> محدّد في سياسة GeneralExpressionProtection، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. حدِّد اسم سياسة وسيّارة البيع العادية التي حدث فيها الخطأ والعنصر الثانوي الذي لا يتضمّن العنصر <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>. يمكنك الاطّلاع على سياسة حماية الحقوق العادية للحصول على معلومات حول كيفية تحديد العنصر بشكل صحيح.

لإصلاح المثال أعلاه، يمكننا إضافة العنصر <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>

NONEmptyPrefixMappedToEmptyURI

رسالة الخطأ

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

السبب

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

التشخيص

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

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

نص خطأ DuplicatePrefix

السبب

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

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

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

التشخيص

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

    على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو "حماية تعبير عادي"-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> ضمن سياسة plainExpressionProtection. على سبيل المثال:

<?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.

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

نص الخطأ BlankXPath Expression

السبب

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

التشخيص

  1. تحديد سياسة الحماية من التعبير العادي التي أخفقت فيها من رسالة الخطأ. على سبيل المثال، في الخطأ التالي، اسم السياسة هو regex-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>، تعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

الدقة

تأكَّد من أنّ سياسة regexExpressionProtection، عنصر <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> سياسة PrimaryExpressionProtection داخل العنصر <JSONPath>، فسيفشل نشر الخادم الوكيل لواجهة برمجة التطبيقات.

التشخيص

  1. تحديد سياسة الحماية من التعبير العادي التي أخفقت فيها من رسالة الخطأ. على سبيل المثال، في الخطأ التالي، اسم السياسة هو regex-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>، تعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

الدقة

تأكَّد من أنّ سياسة regexExpressionProtection، عنصر <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>