रेगुलर एक्सप्रेशन सुरक्षा नीति के डिप्लॉयमेंट से जुड़ी गड़बड़ी ठीक करना

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
info

पर क्लिक करें.

InvalidRegularExpression

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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.

गड़बड़ी के उदाहरण का स्क्रीनशॉट

InvalidRegularExpression गड़बड़ी का टेक्स्ट

वजह

अगर RegularExpressionProtection नीति के <Pattern> एलिमेंट में मौजूद रेगुलर एक्सप्रेशन मान्य नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

संक्रमण की जांच

  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. रेगुलर एक्सप्रेशन प्रोटेक्शन की नीति के लिए बनाए गए उस XML की जांच करें जिसमें <Pattern> एलिमेंट मौजूद हैं. देखें कि क्या <Pattern> एलिमेंट में से किसी में अमान्य रेगुलर एक्सप्रेशन है. अगर <Pattern> एलिमेंट में से किसी में अमान्य रेगुलर एक्सप्रेशन है, तो यह गड़बड़ी की वजह है.

    उदाहरण के लिए, यहां दी गई नीति में foo){2} के 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>

    ऊपर दिए गए उदाहरण में, <Pattern> में दिए गए रेगुलर एक्सप्रेशन में ओपनिंग पैरंटheses मौजूद नहीं है. इसलिए, इसे अमान्य रेगुलर एक्सप्रेशन माना जाता है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका.

रिज़ॉल्यूशन

पक्का करें कि RegularExpressionProtection नीति में मौजूद हर <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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 नीति में तय किए गए किसी भी नेमस्पेस का हिस्सा नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

आपको नेमस्पेस, XPath, और प्रीफ़िक्स के बारे में ज़्यादा जानकारी एक्सएमएल नेमस्पेस और वे 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. रेगुलर एक्सप्रेशन प्रोटेक्शन की जिस नीति का एक्सएमएल लागू नहीं हो सका है उसमें यह पुष्टि करें कि Expression एलिमेंट में सेट किया गया XPath, गड़बड़ी के मैसेज में पहचाने गए XPath (ऊपर दिया गया पहला चरण) से मेल खाता हो.

    उदाहरण के लिए, यहां दी गई नीति में XPath को /notapigee:foo/notapigee:bar के तौर पर बताया गया है. यह गड़बड़ी के मैसेज में मौजूद 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>/notapigee:foo/notapigee:bar</Expression>
                 <Type>nodeset</Type>
                 <Pattern>pattern</Pattern>
                 <Pattern>pattern2</Pattern>
             </XPath>
         </XMLPayload>
    </RegularExpressionProtection>
  3. RegularExpressionProtection नीति में मौजूद <Namespaces> और <Expression> एलिमेंट की जांच करें. अगर गड़बड़ी के मैसेज में बताया गया <Expression>, ऐसे प्रीफ़िक्स या वैल्यू का इस्तेमाल करता है जो RegularExpressionProtection नीति में बताए गए नेमस्पेस का हिस्सा नहीं है, तो यह गड़बड़ी की वजह है.

    ध्यान दें कि उदाहरण RegularExpressionProtection नीति में, खास <XPath>, notapigee प्रीफ़िक्स का इस्तेमाल करता है:

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

    हालांकि, notapigee प्रीफ़िक्स को किसी भी <Namespace> एलिमेंट में तय नहीं किया गया है. इसलिए, <XPath> को कंपाइल नहीं किया जा सका. इस वजह से, डिप्लॉयमेंट पूरा नहीं हो सका.

रिज़ॉल्यूशन

पक्का करें कि <XPath> एलिमेंट के तहत <Expression> एलिमेंट में इस्तेमाल किए जा रहे सभी नेमस्पेस, RegularExpressionProtection नीति में घोषित किए गए हों. ऊपर दिए गए उदाहरण को ठीक करने के लिए, 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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 error text

वजह

अगर रेगुलर एक्सप्रेशन नीति में ऐसा <XPath> एक्सप्रेशन है जिसमें <Type> एलिमेंट को nodeset के तौर पर तय किया गया है, लेकिन एक्सप्रेशन को nodeset में नहीं बदला जा सकता, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

संक्रमण की जांच

  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. रेगुलर एक्सप्रेशन प्रोटेक्शन की जिस नीति का एक्सएमएल लागू नहीं हो सका है उसमें यह पुष्टि करें कि <XPath> एलिमेंट के <Expression> एलिमेंट में सेट किया गया XPath, गड़बड़ी के मैसेज में पहचाने गए XPath (ऊपर दिया गया पहला चरण) से मेल खाता हो.

    उदाहरण के लिए, यहां दी गई नीति में 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. <XPath> एलिमेंट के नीचे मौजूद <Type> एलिमेंट में सेट की गई वैल्यू की जांच करें. अगर <Type> एलिमेंट nodeset है, तो गड़बड़ी की वजह यही है.

    इस उदाहरण में, XPath एक्सप्रेशन count() है. यह एक या उससे ज़्यादा नोड नहीं दिखाता है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका.

रिज़ॉल्यूशन

अगर <Type> एलिमेंट को नोडसेट पर सेट किया गया है, तो पक्का करें कि <XPath> में सेट किए गए <Expression> एलिमेंट का नतीजा एक या उससे ज़्यादा नोड हो. इसके अलावा, अपने इस्तेमाल के उदाहरण के हिसाब से <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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 गड़बड़ी का टेक्स्ट

वजह

अगर रेगुलर एक्सप्रेशन प्रोटेक्शन नीति के <JSONPath> एलिमेंट में मौजूद <Expression> एलिमेंट को अमान्य JSONPath एक्सप्रेशन पर सेट किया जाता है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

संक्रमण की जांच

  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. रेगुलर एक्सप्रेशन प्रोटेक्शन की जिस नीति के एक्सएमएल को लागू नहीं किया जा सका है उसमें यह पुष्टि करें कि Expression एलिमेंट में सेट किया गया JSONPath, गड़बड़ी के मैसेज (ऊपर दिया गया पहला चरण) में पहचाने गए JSONPath से मेल खाता हो.

    उदाहरण के लिए, यहां दी गई नीति में <JSONPath> एलिमेंट के तहत Expression एलिमेंट को $.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. नीति में, <JSONPath> एलिमेंट के तहत <Expression> एलिमेंट की जांच करें. अगर यह JSONPath सिंटैक्स से मेल नहीं खाता है, तो गड़बड़ी की वजह यही है. ऊपर दिए गए उदाहरण में, क्लोज़िंग स्क्वेयर ब्रैकेट मौजूद नहीं है. इस वजह से, एक्सप्रेशन अमान्य है.

    JSON पाथ एक्सप्रेशन अमान्य होने की वजह से, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.

रिज़ॉल्यूशन

पक्का करें कि रेगुलर एक्सप्रेशन प्रोटेक्शन नीति में <JSONPath> एलिमेंट के अंदर मौजूद <Expression> एलिमेंट की वैल्यू, मान्य 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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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> में से कोई भी एलिमेंट मौजूद नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

गड़बड़ी के मैसेज में बताया गया है कि 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" 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>

    Extract Variables नीति में कोई भी ज़रूरी एलिमेंट मौजूद नहीं है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता.

रिज़ॉल्यूशन

पक्का करें कि 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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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>) में RegularExpressionProtection नीति में तय किया गया <Pattern> एलिमेंट नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

संक्रमण की जांच

  1. उस RegularExpressionProtection नीति का नाम पता करें जिसमें गड़बड़ी हुई है. साथ ही, उस चाइल्ड एलिमेंट का नाम पता करें जिसमें <Pattern> एलिमेंट मौजूद नहीं है. आपको ये दोनों आइटम, गड़बड़ी के मैसेज में मिल सकते हैं.

    उदाहरण के लिए, यहां दी गई गड़बड़ी में, नीति का नाम Regular-Expression-Protection-1 है और चाइल्ड एलिमेंट XPath: है

    RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
  2. रेगुलर एक्सप्रेशन प्रोटेक्शन की उस नीति की जांच करें जो लागू नहीं हो रही है. साथ ही, पुष्टि करें कि पहले चरण में पहचाने गए चाइल्ड एलिमेंट में <Pattern> एलिमेंट मौजूद न हो. अगर इसमें <Pattern> एलिमेंट मौजूद नहीं है, तो गड़बड़ी की वजह यही है.

    उदाहरण के लिए, इस नीति में <XPath> के अंदर <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>
          <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> एलिमेंट मौजूद नहीं है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका.

रिज़ॉल्यूशन

पक्का करें कि <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> या <JSONPayload> में से किसी भी एलिमेंट के लिए, कम से कम एक <Pattern> तय किया गया हो. एलिमेंट को सही तरीके से तय करने के बारे में जानने के लिए, RegularExpressionProtection नीति देखें.

ऊपर दिए गए उदाहरण को ठीक करने के लिए, हम <Pattern> एलिमेंट को <XMLPayload> के नीचे मौजूद <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>

NONEmptyPrefixMappedToEmptyURI

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 नीति में, <XMLPayload> एलिमेंट के तहत <Namespace> एलिमेंट में कोई प्रीफ़िक्स तय किया गया हो, लेकिन कोई यूआरआई तय न किया गया हो.

संक्रमण की जांच

  1. उस RegularExpressionProtection नीति का पता लगाएं जिसमें गड़बड़ी हुई है. साथ ही, उस प्रीफ़िक्स का नाम पता लगाएं जिसे यूआरआई पर मैप नहीं किया गया है. आपको ये दोनों आइटम, गड़बड़ी के मैसेज में मिल सकते हैं.

    उदाहरण के लिए, यहां दी गई गड़बड़ी में, नीति का नाम Regular Expression Protection-1 है और प्रीफ़िक्स apigee है:

    RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
  2. रेगुलर एक्सप्रेशन प्रोटेक्शन की जिस नीति की एक्सएमएल फ़ाइल में गड़बड़ी हुई है उसमें यह पुष्टि करें कि <XMLPayload> एलिमेंट के <Namespace> एलिमेंट में सेट किया गया प्रीफ़िक्स का नाम, गड़बड़ी के मैसेज में पहचाने गए प्रीफ़िक्स के नाम (ऊपर पहला चरण) से मेल खाता हो.

    उदाहरण के लिए, यहां दी गई नीति में <Namespace> एलिमेंट में 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"/>
              <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. पुष्टि करें कि चरण #2 में पहचाने गए खास प्रीफ़िक्स वाले <Namespace> एलिमेंट का यूआरआई मान्य है या नहीं. अगर यूआरआई मौजूद नहीं है, तो गड़बड़ी की वजह यही है.

    ऊपर दिए गए उदाहरण में, रेगुलर एक्सप्रेशन प्रोटेक्शन नीति दिखाई गई है. ध्यान दें कि apigee प्रीफ़िक्स वाले <Namespace> एलिमेंट से जुड़ा कोई यूआरआई नहीं है. इसलिए, आपको यह गड़बड़ी दिखती है:

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

रिज़ॉल्यूशन

पक्का करें कि प्रीफ़िक्स के साथ तय किए गए सभी <Namespace> एलिमेंट के लिए, Extract Variables नीति में यूआरआई मौजूद हो. उदाहरण के लिए:

<?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 Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 गड़बड़ी का टेक्स्ट

वजह

यह गड़बड़ी तब होती है, जब RegularExpressionProtection नीति में, <XMLPayload> एलिमेंट के तहत <Namespace> एलिमेंट में एक ही प्रीफ़िक्स को एक से ज़्यादा बार तय किया गया हो.

उदाहरण के लिए, यह गड़बड़ी इसलिए होती है, क्योंकि apigee प्रीफ़िक्स को दो बार तय किया गया है. जैसा कि यहां दिखाया गया है:

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

संक्रमण की जांच

  1. उस RegularExpressionProtection नीति का पता लगाएं जिसमें गड़बड़ी हुई है. साथ ही, प्रीफ़िक्स का नाम भी पता लगाएं. आपको ये दोनों आइटम, गड़बड़ी के मैसेज में मिल सकते हैं.

    उदाहरण के लिए, यहां दी गई गड़बड़ी में, नीति का नाम Regular Expression Protection-1 है और प्रीफ़िक्स apigee है:

    RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
  2. रेगुलर एक्सप्रेशन प्रोटेक्शन की जिस नीति की एक्सएमएल फ़ाइल में गड़बड़ी हुई है उसमें यह पुष्टि करें कि <XMLPayload> एलिमेंट के <Namespace> एलिमेंट में सेट किया गया प्रीफ़िक्स का नाम, गड़बड़ी के मैसेज में पहचाने गए प्रीफ़िक्स के नाम (ऊपर पहला चरण) से मेल खाता हो.

    उदाहरण के लिए, यहां दी गई नीति में <Namespace> एलिमेंट में 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>
              <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. यह पता लगाएं कि चरण #2 में पहचाना गया, खास प्रीफ़िक्स वाला <Namespace> एलिमेंट एक से ज़्यादा बार तय किया गया है या नहीं. अगर इसे एक से ज़्यादा बार तय किया गया है, तो यह गड़बड़ी की वजह है.

    ऊपर दिखाई गई Regular Expression Protection नीति के उदाहरण में, ध्यान दें कि apigee प्रीफ़िक्स वाले <Namespace> एलिमेंट को दो बार तय किया गया है. इसलिए, आपको यह गड़बड़ी दिखती है:

    Duplicate prefix apigee.

रिज़ॉल्यूशन

पक्का करें कि RegularExpressionProtection नीति में मौजूद <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>
        </Namespaces>
        <XPath>
          <Expression>/apigee:Greeting/apigee:User</Expression>
          <Type>string</Type>
          <Pattern>REGEX PATTERN</Pattern>
        </XPath>
      </XMLPayload>
    </RegularExpressionProtection>

EmptyXPathExpression

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 नीति में, <XPath> एलिमेंट के अंदर कोई <Expression> एलिमेंट सेट नहीं किया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

संक्रमण की जांच

  1. गड़बड़ी के मैसेज से, रेगुलर एक्सप्रेशन प्रोटेक्शन की उस नीति का पता लगाएं जो लागू नहीं हो सकी. उदाहरण के लिए, यहां दी गई गड़बड़ी में, नीति का नाम Regular-Expression-Protection-1 है:

    RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
  2. रेगुलर एक्सप्रेशन प्रोटेक्शन की नीति वाले जिस एक्सएमएल में गड़बड़ी हुई है उसमें यह पता लगाएं कि क्या कोई ऐसा <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>

    <XPath> एलिमेंट में खाली <Expression> एलिमेंट मौजूद है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका.

रिज़ॉल्यूशन

पक्का करें कि RegularExpressionProtection नीति में, <XPath> एलिमेंट के तहत एक गैर-खाली और मान्य <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:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
    </XPath>
  </XMLPayload>
</RegularExpressionProtection>

EmptyJSONPathExpression

गड़बड़ी का मैसेज

Edge यूज़र इंटरफ़ेस (यूआई) या Edge Management API के ज़रिए एपीआई प्रॉक्सी को डिप्लॉय करने पर, यह गड़बड़ी का मैसेज दिखता है:

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 नीति में, <JSONPath> एलिमेंट के अंदर कोई <Expression> एलिमेंट सेट नहीं किया गया है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.

संक्रमण की जांच

  1. गड़बड़ी के मैसेज से, रेगुलर एक्सप्रेशन प्रोटेक्शन की उस नीति का पता लगाएं जो लागू नहीं हो सकी. उदाहरण के लिए, यहां दी गई गड़बड़ी में, नीति का नाम Regular-Expression-Protection-1 है:

    Error Saving Revision 1
    RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
  2. रेगुलर एक्सप्रेशन प्रोटेक्शन की नीति के लिए अमान्य एक्सएमएल में यह पता लगाएं कि क्या <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>

    <JSONPath> एलिमेंट में खाली <Expression> एलिमेंट मौजूद है. इसलिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सका.

रिज़ॉल्यूशन

पक्का करें कि RegularExpressionProtection नीति में, <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>