Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Lihat
Dokumentasi Apigee Edge.
InvalidRegularExpression
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
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.
Contoh Pesan Error
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.
Contoh Screenshot Error
Penyebab
Jika ekspresi reguler dalam elemen <Pattern>
kebijakan RegularExpressionProtection tidak valid, deployment Proxy API akan gagal.
Diagnosis
Identifikasi nama kebijakan RegularExpressionProtection dari pesan error. Misalnya, dalam error berikut, nama kebijakan RegularExpressionProtection adalah
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.
Periksa semua elemen
<Pattern>
dalam XML kebijakan Regular Expression Protection yang gagal. Periksa apakah ada elemen<Pattern>
yang memiliki ekspresi reguler yang tidak valid. Jika salah satu elemen<Pattern>
memiliki ekspresi reguler yang tidak valid, maka itulah penyebab error.Misalnya, kebijakan berikut menentukan nilai
Pattern>
darifoo){2}
, yang dianggap sebagai Ekspresi Reguler Tidak Valid:<?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>
Dalam contoh di atas, ekspresi reguler yang ditentukan di
<Pattern>
tidak memiliki tanda kurung pembuka. Oleh karena itu, dianggap sebagai ekspresi reguler yang tidak valid. Jadi, deployment Proxy API akan gagal.
Resolusi
Pastikan setiap elemen <Pattern>
di kebijakan RegularExpressionProtection berisi ekspresi reguler yang valid. Anda dapat menelusuri berbagai alat ekspresi reguler online atau offline untuk proses debug ekspresi reguler.
Untuk memperbaiki contoh kebijakan Perlindungan Ekspresi Reguler yang ditampilkan di atas, tambahkan tanda kurung yang tidak ada:
<?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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
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.
Contoh Pesan Error
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.
Contoh Screenshot Error
Penyebab
Jika awalan atau nilai yang digunakan dalam elemen <XPath>
bukan bagian dari namespace yang dideklarasikan dalam kebijakan RegularExpressionProtection, deployment proxy API akan gagal.
Anda dapat menemukan informasi selengkapnya tentang namespace, XPath, dan awalan di Namespace XML dan Bagaimana Memengaruhi XPath dan XSLT.
Diagnosis
Identifikasi nama kebijakan RegularExpressionProtection tempat error terjadi dan Ekspresi XPath yang digunakan. Anda dapat menemukan kedua item ini di pesan error.
Misalnya, dalam error berikut , nama kebijakannya adalah
Regular-Expression-Protection-1
dan Ekspresi XPath adalah/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.
Dalam XML kebijakan Regular Expression Protection yang gagal, verifikasi bahwa XPath yang ditetapkan dalam elemen
Expression
cocok dengan XPath yang diidentifikasi dalam pesan error (langkah #1 di atas).Misalnya, kebijakan berikut menentukan XPath sebagai
/notapigee:foo/notapigee:bar
yang cocok dengan apa yang ada dalam pesan error:<?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>
- Periksa elemen
<Namespaces>
dan<Expression>
di kebijakan RegularExpressionProtection. Jika<Expression>
spesifik yang ditunjukkan dalam pesan error menggunakan awalan atau nilai yang bukan bagian dari namespace yang dinyatakan dalam kebijakan RegularExpressionProtection, berarti itulah penyebab errornya.Perhatikan bahwa
<XPath>
tertentu menggunakan awalannotapigee
dalam contoh kebijakan RegularExpressionProtection:<Expression>/notapigee:foo/notapigee:bar</Expression>
Namun, awalan
notapigee
tidak didefinisikan dalam elemen<Namespace>
apa pun; sehingga kompilasi<XPath>
gagal yang menyebabkan kegagalan deployment.
Resolusi
Pastikan semua namespace yang digunakan dalam elemen <Expression>
pada elemen <XPath>
dideklarasikan dalam kebijakan RegularExpressionProtection. Untuk memperbaiki contoh di atas, Anda dapat mengganti awalan notapigee
menjadi apigee
, yang dideklarasikan di 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:foo/apigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
CannotBeConvertedToNodeset
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
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.
Contoh Pesan Error
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.
Contoh Screenshot Error
Penyebab
Jika Kebijakan Ekspresi Reguler memiliki ekspresi <XPath>
dengan elemen <Type>
ditentukan sebagai nodeset, tetapi ekspresi tidak dapat dikonversi ke nodeset, deployment proxy API akan gagal.
Diagnosis
Identifikasi kebijakan RegularExpressionProtection tempat terjadinya error dan Ekspresi XPath yang tidak dapat dikonversi ke nodeset. Anda dapat menemukan kedua item ini di pesan error.
Misalnya, dalam error berikut , nama kebijakannya adalah
Regular-Expression-Protection-1
dan Ekspresi XPath adalahcount(//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.
Dalam XML kebijakan Regular Expression Protection yang gagal, verifikasi bahwa XPath yang ditetapkan dalam elemen
<Expression>
dari elemen<XPath>
cocok dengan XPath yang diidentifikasi dalam pesan error (langkah #1 di atas).Misalnya, kebijakan berikut menetapkan
count(//apigee:foo)
, yang cocok dengan isi pesan error:<?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>
Periksa nilai yang ditetapkan dalam elemen
<Type>
di bawah elemen<XPath>
. Jika elemen<Type>
adalahnodeset
, maka itulah penyebab error.Dalam contoh ini, ekspresi XPath adalah count() yang tidak menampilkan satu atau beberapa node. Jadi, deployment Proxy API akan gagal.
Resolusi
Jika elemen <Type>
ditetapkan ke nodeset, pastikan bahwa hasil elemen <Expression>
yang ditetapkan di <XPath>
adalah satu atau beberapa node. Atau, ubah elemen <Type>
ke nilai yang lebih sesuai berdasarkan kasus penggunaan Anda.
Untuk memperbaiki contoh di atas, Anda dapat mengubah elemen <Expression>
ke nilai berbeda yang dapat menampilkan node:
<?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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
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.
Contoh Pesan Error
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.
Contoh Screenshot Error
Penyebab
Jika elemen <Expression>
pada elemen <JSONPath>
kebijakan Perlindungan Ekspresi Reguler disetel ke ekspresi JSONPath yang tidak valid, deployment proxy API akan gagal.
Diagnosis
Identifikasi nama kebijakan RegularExpressionProtection tempat terjadinya error dan Ekspresi JSONPath yang tidak valid digunakan. Anda dapat menemukan kedua item ini di pesan error.
Misalnya, dalam error berikut , nama kebijakannya adalah
Regular-Expression-Protection-1
dan Ekspresi JSONPath adalah$.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.
Dalam XML kebijakan Regular Expression Protection yang gagal, pastikan JSONPath yang ditetapkan dalam elemen
Expression
cocok dengan JSONPath yang diidentifikasi dalam pesan error (langkah #1 di atas).Misalnya, kebijakan berikut menetapkan elemen
Expression
pada elemen<JSONPath>
sebagai$.store.book[*.author
yang cocok dengan isi pesan error:<?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>
Periksa elemen
<Expression>
pada elemen<JSONPath>
dalam kebijakan. Jika tidak cocok dengan sintaksis JSONPath, berarti ini adalah penyebab error. Pada contoh di atas, tanda kurung siku penutup tidak ada, sehingga ekspresi tidak valid.Karena Ekspresi Jalur JSON tidak valid, deployment Proxy API akan gagal.
Resolusi
Pastikan nilai untuk elemen <Expression>
di dalam elemen <JSONPath>
dalam kebijakan Regular Expression Protection merupakan ekspresi JSONPath yang valid.
Untuk memperbaiki contoh yang ditampilkan di atas, Anda dapat menambahkan tanda kurung siku penutup yang tidak ada ke nilai elemen <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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
Error Saving Revision revision_number RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Contoh Pesan Error
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Contoh Screenshot Error
Penyebab
Jika kebijakan RegularExpressionProtection tidak memiliki elemen apa pun <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
, atau <JSONPayload>
, deployment Proxy API akan gagal.
Seperti yang ditunjukkan dalam pesan error, kebijakan RegularExpressionProtection harus memiliki setidaknya salah satu elemen berikut yang disertakan dalam kebijakan: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
, atau <JSONPayload>
.
Diagnosis
Identifikasi nama kebijakan RegularExpressionProtection tempat error terjadi. Anda dapat menemukannya di pesan error. Misalnya, dalam error berikut , nama kebijakannya adalah
Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Periksa kebijakan Regular Expression Protection yang gagal (yang diidentifikasi pada langkah #1 di atas). Jika kebijakan bahkan tidak memiliki salah satu elemen berikut:
<URIPath>
,<QueryParam>
,<Header>
,<FormParam>
,<XMLPayload>
, atau<JSONPayload>
, maka itulah penyebab error.Misalnya, kebijakan Perlindungan Ekspresi Reguler berikut tidak memiliki salah satu elemen yang disebutkan di atas:
<?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>
Karena tidak satu pun elemen wajib ada dalam kebijakan Extract Variables, deployment proxy API gagal.
Resolusi
Pastikan kebijakan RegularExpressionProtection memiliki setidaknya salah satu elemen wajib berikut: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
, atau <JSONPayload>
. Contoh:
<?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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
Error Saving Revision revision_number RegularExpressionProtection policy_name: No patterns to enforce in payload_name.
Contoh Pesan Error
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
Contoh Screenshot Error
Penyebab
Jika salah satu elemen tingkat atas (<URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
, atau <JSONPayload>
) tidak memiliki elemen <Pattern>
yang ditetapkan dalam kebijakan RegularExpressionProtection, berarti deployment proxy API akan gagal.
Diagnosis
Identifikasi nama kebijakan RegularExpressionProtection tempat error terjadi dan elemen turunan yang tidak memiliki elemen
<Pattern>
. Anda dapat menemukan kedua item ini di pesan error.Misalnya, dalam error berikut, nama kebijakannya adalah
Regular-Expression-Protection-1
dan elemen turunannya adalahXPath:
RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Periksa kebijakan Perlindungan Ekspresi Reguler yang gagal dan verifikasi apakah elemen turunan yang diidentifikasi pada langkah #1 tidak memiliki elemen
<Pattern>
. Jika elemen<Pattern>
tidak ada di dalamnya, maka itulah penyebab error.Misalnya, kebijakan berikut tidak memiliki elemen
<Pattern>
di dalam<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>
Karena elemen
<XPath>
tidak memiliki elemen<Pattern>
, deployment Proxy API akan gagal.
Resolusi
Pastikan setiap elemen <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
, atau <JSONPayload>
memiliki setidaknya satu <Pattern>
yang ditentukan. Lihat kebijakan RegularExpressionProtection untuk informasi tentang cara menentukan elemen dengan benar.
Untuk memperbaiki contoh di atas, kita hanya dapat menambahkan elemen <Pattern>
ke elemen <XPath>
di bawah <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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.
Contoh Pesan Error
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Contoh Screenshot Error
Penyebab
Error ini terjadi jika kebijakan RegularExpressionProtection memiliki awalan yang ditentukan dalam elemen <Namespace>
pada elemen <XMLPayload>
, tetapi tidak ada URI yang ditentukan.
Diagnosis
Identifikasi kebijakan RegularExpressionProtection tempat error terjadi dan nama awalan yang tidak dipetakan ke URI. Anda dapat menemukan kedua item ini di pesan error.
Misalnya, dalam error berikut, nama kebijakan adalah Regular Expression Protection-1 dan awalannya adalah apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Dalam XML kebijakan Regular Expression Protection yang gagal, pastikan nama awalan yang ditetapkan dalam elemen
<Namespace>
pada elemen<XMLPayload>
cocok dengan nama awalan yang diidentifikasi dalam pesan error (langkah #1 di atas).Misalnya, kebijakan berikut menetapkan awalan bernama apigee dalam elemen
<Namespace>
, yang cocok dengan isi pesan error:<?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>
Validasi apakah elemen
<Namespace>
dengan awalan tertentu yang diidentifikasi di langkah #2 memiliki URI yang valid. Jika URI tidak ada, berarti itulah penyebab error.Dalam contoh kebijakan Regular Expression Protection yang ditampilkan di atas, perhatikan bahwa tidak ada URI yang sesuai dengan elemen
<Namespace>
dengan awalan apigee; Oleh karena itu, Anda akan mendapatkan error:Non-empty prefix apigee cannot be mapped to empty uri.
Resolusi
Pastikan semua elemen <Namespace>
yang ditentukan dengan awalan memiliki URI yang sesuai dalam kebijakan Ekstrak Variabel. Contoh:
<?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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Duplicate prefix prefix_name.
Contoh Pesan Error
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Contoh Screenshot Error
Penyebab
Error ini terjadi jika kebijakan RegularExpressionProtection memiliki awalan yang sama yang ditentukan lebih dari sekali dalam elemen <Namespace>
pada elemen <XMLPayload>
.
Misalnya, error ini terjadi karena awalan apigee ditentukan dua kali seperti yang ditunjukkan di bawah ini:
<Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace>
Diagnosis
Identifikasi kebijakan RegularExpressionProtection tempat error terjadi dan nama awalannya. Anda dapat menemukan kedua item ini di pesan error.
Misalnya, dalam error berikut, nama kebijakan adalah Regular Expression Protection-1 dan awalannya adalah apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Dalam XML kebijakan Regular Expression Protection yang gagal, pastikan nama awalan yang ditetapkan dalam elemen
<Namespace>
pada elemen<XMLPayload>
cocok dengan nama awalan yang diidentifikasi dalam pesan error (langkah #1 di atas).Misalnya, kebijakan berikut menetapkan awalan bernama apigee dalam elemen
<Namespace>
, yang cocok dengan isi pesan error:<?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>
Tentukan apakah elemen
<Namespace>
dengan awalan tertentu, yang diidentifikasi di langkah #2 telah ditentukan lebih dari sekali. Jika ditentukan lebih dari sekali, maka itulah yang menjadi penyebab error.Pada contoh kebijakan Regular Expression Protection yang ditampilkan di atas, perhatikan bahwa elemen
<Namespace>
dengan awalan apigee telah ditentukan dua kali; Oleh karena itu, Anda akan mendapatkan error:Duplicate prefix apigee.
Resolusi
Pastikan hanya ada satu definisi untuk setiap awalan dalam elemen <Namespace>
dalam kebijakan RegularExpressionProtection. Contoh:
<?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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty XPath expression.
Contoh Pesan Error
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Contoh Screenshot Error
Penyebab
Jika kebijakan RegularExpressionProtection tidak memiliki elemen <Expression>
yang ditetapkan dalam elemen <XPath>
, deployment proxy API akan gagal.
Diagnosis
Identifikasi kebijakan Regular Expression Protection yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakannya adalah Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Dalam XML kebijakan Regular Expression Protection yang gagal, tentukan apakah ada elemen
<XMLPayload>
dengan elemen turunan<XPath>
yang tidak memiliki elemen<Expression>
yang ditentukan di dalamnya, atau elemen<Expression>
tidak disetel ke nilai apa pun. Jika ya, maka itulah penyebab errornya.Misalnya, berikut adalah kebijakan Perlindungan Ekspresi Reguler yang memiliki elemen
<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>
Karena ada elemen
<Expression>
kosong dalam elemen<XPath>
, deployment Proxy API akan gagal.
Resolusi
Pastikan kebijakan RegularExpressionProtection memiliki elemen <Expression>
yang tidak kosong dan valid yang ditentukan berdasarkan elemen <XPath>
. Contoh:
<?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
Pesan Error
Deployment proxy API melalui UI Apigee atau API gagal dengan pesan error ini:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty JSONPath expression.
Contoh Pesan Error
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Contoh Screenshot Error
Penyebab
Jika kebijakan RegularExpressionProtection tidak memiliki elemen <Expression>
yang ditetapkan dalam elemen <JSONPath>
, deployment proxy API akan gagal.
Diagnosis
Identifikasi kebijakan Regular Expression Protection yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakannya adalah Regular-Expression-Protection-1:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Dalam XML kebijakan Regular Expression Protection yang gagal, tentukan apakah ada elemen
<JSONPayload>
dengan elemen turunan<JSONPath>
yang tidak memiliki elemen<Expression>
yang ditentukan di dalamnya, atau elemen<Expression>
tidak disetel ke nilai apa pun. Jika ya, maka itulah penyebab errornya.Misalnya, berikut adalah kebijakan Perlindungan Ekspresi Reguler yang memiliki elemen
<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>
Karena ada elemen
<Expression>
kosong dalam elemen<JSONPath>
, deployment Proxy API akan gagal.
Resolusi
Pastikan kebijakan RegularExpressionProtection memiliki elemen <Expression>
yang tidak kosong dan valid yang ditentukan berdasarkan elemen <JSONPath>
. Contoh:
<?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>