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

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.

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

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

वजह

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

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

  1. गड़बड़ी के मैसेज से regular ExpressionProtection नीति का नाम पहचानें. उदाहरण के लिए, यहां दी गई गड़बड़ी में, RegularExpressionProtection नीति का नाम Regular-Expression-Protection-1: है

    Error Deploying Revision 1 to test
    RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
    
  2. रेगुलर एक्सप्रेशन की मदद से, कॉन्टेंट की सुरक्षा करने से जुड़ी नीति के उस एक्सएमएल में मौजूद सभी <Pattern> एलिमेंट की जांच करें जो काम नहीं कर रहा है. देखें कि किसी भी <Pattern> एलिमेंट में अमान्य रेगुलर एक्सप्रेशन तो नहीं है. अगर किसी <Pattern> एलिमेंट में अमान्य रेगुलर एक्सप्रेशन है, तो गड़बड़ी की वजह यही है.

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

रिज़ॉल्यूशन

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

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

आपको एक्सएमएल नेमस्पेस और OAuth और XSLT पर असर और 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 से मेल खाता हो.

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

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

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

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

रिज़ॉल्यूशन

पक्का करें कि <XPath> एलिमेंट के तहत, <Expression> एलिमेंट में इस्तेमाल किए जा रहे सभी नेमस्पेस के बारे में, रेगुलरएक्सप्रेशन प्रोटेक्शन नीति में जानकारी दी गई है. ऊपर दिए गए उदाहरण को ठीक करने के लिए, 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.

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

नहीं किया जा सकता BeConvertToNodeset गड़बड़ी का टेक्स्ट

वजह

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

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

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

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

    इस उदाहरण में, X फ़ंक्शन का एक्सप्रेशन 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 मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

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

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.

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

NothingToलागू करने से जुड़ी गड़बड़ी का टेक्स्ट

वजह

अगर 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. विफल रहे रेगुलर एक्सप्रेशन सुरक्षा नीति की जांच करें (ऊपर चरण #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>
    

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

रिज़ॉल्यूशन

पक्का करें कि 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.

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

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 नीति देखें.

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

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

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

वजह

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

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

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

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

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

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

रिज़ॉल्यूशन

पक्का करें कि प्रीफ़िक्स के साथ तय किए गए सभी <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="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.

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

डुप्लीकेट प्रीफ़िक्स गड़बड़ी टेक्स्ट

वजह

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

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

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

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

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

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

    ऊपर दी गई रेगुलर एक्सप्रेशन की सुरक्षा नीति के उदाहरण में, ध्यान दें कि 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 मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:

Error Saving Revision revision_number
RegularExpressionProtection policy_name: Empty XPath expression.

गड़बड़ी के मैसेज का उदाहरण

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

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

फीटएक्सपाथएक्सप्रेशन की गड़बड़ी का टेक्स्ट

वजह

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

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

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

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

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. रेगुलर एक्सप्रेशन सुरक्षा नीति एक्सएमएल में, यह देखें कि क्या <JSONPath> चाइल्ड एलिमेंट वाला <JSONPayload> एलिमेंट ऐसा है जिसमें कोई <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>