פתרון בעיות בפריסת מדיניות DecodeJWT

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

InvalidEmptyElement

הודעת שגיאה

פריסת ה-proxy ל-API דרך ממשק המשתמש של Edge או דרך Edge Management API נכשלת עם הודעת השגיאה הבאה:

Error Saving Revision
Invalid empty element : policy(policy_name) element(Source)

הודעת שגיאה לדוגמה

Error Saving Revision
Invalid empty element : policy(Decode_JWT) element(Source).

צילום מסך לדוגמה

בממשק המשתמש של Edge, תופיע תיבת דו-שיח עם שגיאה:

סיבה

השגיאה הזו מתרחשת אם משתנה הזרימה שמכיל את אסימון ה-JWT שצריך לפענח לא מצוין ברכיב <Source> של מדיניות DecodeJWT.

לדוגמה, השגיאה תתרחש אם הרכיב <Source> לא יכיל ערך, כמו בדוגמה הבאה:

<Source></Source>

אבחון

  1. מזהים את השם של מדיניות DecodeJWT ואת השם של הרכיב הריק מהודעת השגיאה. לדוגמה, בהודעת השגיאה הבאה, השם של מדיניות DecodeJWT הוא Decode_JWT ושם הרכיב הוא Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
  2. בודקים את מדיניות DecodeJWT ומוודאים שהרכיב שזוהה בשלב 1 ריק. אם הרכיב ריק, זו הסיבה לשגיאה.

    זו דוגמה למדיניות DecodeJWT:

    <DecodeJWT name="Decode_JWT">
        <DisplayName>JWT Decode HS256</DisplayName>
        <Source></Source>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    </DecodeJWT>
    

    מכיוון שהרכיב <Source> ריק, מוצגת השגיאה:

    Invalid empty element : policy(Decode_JWT) element(Source).
    

רזולוציה

מוודאים שהרכיב <Source> מציין JWT תקף במשתנה זרימה.

כדי לפתור את הבעיה במדיניות לדוגמה DecodeJWT, אפשר לציין את משתנה הזרימה שמכיל JWT תקין באלמנט <Source>.

<DecodeJWT name="Decode_JWT">
    <DisplayName>JWT Decode HS256</DisplayName>
    <Source>var.jwt</Source>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</DecodeJWT>