הגדרה של מעבדי הודעות כדי לאפשר כותרות כפולות

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

בהתאם למפרט HTTP,‏ RFC 7230, סעיף 3.2.2: סדר השדות,‏ Apigee Edge מצפה שבקשת ה-HTTP מהלקוח או תגובת ה-HTTP משרת הקצה העורפי לא יכילו את אותה כותרת שמועברת יותר מפעם אחת עם אותם ערכים או ערכים שונים, אלא אם יש חריג לכותרת הספציפית ומותר להכיל כפילויות.

כברירת מחדל, ב-Apigee Edge אפשר להעביר כפילויות ומספר ערכים לרוב כותרות ה-HTTP. עם זאת, המערכת לא מאפשרת להשתמש בכותרות מסוימות שמפורטות בקטע כותרות שאסור להשתמש בהן עם ערכים כפולים או עם כמה ערכים. לכן:

  • תקבלו 400 Bad Request עם קוד השגיאה protocol.http.DuplicateHeader אם הלקוח שולח בקשת HTTP עם כותרת מסוימת יותר מפעם אחת, או עם כמה ערכים לכותרות HTTP שאסור להן להכיל כפילויות או כמה ערכים ב-Apigee Edge.
  • באופן דומה, תקבלו את השגיאה 502 Bad Gateway עם קוד השגיאה protocol.http.DuplicateHeader אם שרת הקצה העורפי שולח תגובת HTTP עם כותרת מסוימת יותר מפעם אחת או עם כמה ערכים לכותרות HTTP שאסור להן להכיל כפילויות או כמה ערכים ב-Apigee Edge.

הפתרון המומלץ לטיפול בשגיאות האלה הוא לתקן את אפליקציית הלקוח ואת שרת הקצה העורפי כדי שלא ישלחו כותרות כפולות, ולפעול בהתאם למפרט RFC 7230, section 3.2.2: Field Order, כפי שמוסבר במדריכים הבאים לפתרון בעיות:

עם זאת, במקרים מסוימים יכול להיות שתרצו להוסיף חריג כדי לכלול כפילויות וכמה ערכים בכותרות HTTP מסוימות. במקרים כאלה, אפשר לאפשר כותרות כפולות וכמה ערכים לכותרת HTTP ספציפית על ידי הגדרת מאפיין HTTPHeader.HEADER_NAME ברמה של מעבד ההודעות.

במאמר הזה מוסבר על המאפיין הזה, איך להפעיל אותו כדי להימנע מהשגיאות שצוינו למעלה ומהן השיטות המומלצות לשימוש בו.

מאפייני כותרת HTTP שמאפשרים כפילויות וכמה ערכים

ב-Apigee Edge יש שני מאפיינים שמאפשרים לשלוט בהתנהגות של אישור כפילויות וערכים מרובים בכותרות HTTP. שימו לב שאפשר להגדיר את ההגדרות האלה רק ב-Message Processors באמצעות תחביר הטוקן שמוסבר במאמר איך מגדירים את Edge.

שם הנכס תיאור ערכים מותרים
HTTPHeader.ANY

המאפיין הזה מציין אם מותרים כפילויות או כמה ערכים לכל כותרות ה-HTTP, כולל הכותרות המותאמות אישית שנשלחות כחלק מבקשת ה-HTTP שהלקוח שולח או מתגובת ה-HTTP ששרת הקצה העורפי שולח ל-Apigee Edge.

ערך ברירת מחדל:

multiValued, allowDuplicates,

  1. blank: אסור להשתמש בכותרות HTTP כפולות או בכמה ערכים לאותה כותרת.
  2. multiValued: פיצול הכותרת עם מספר הערכים לכמה כותרות. אפשר להזין כמה ערכים לכותרות HTTP, אבל אסור להזין ערכים כפולים. הערך multiValued מופעל, מה שאומר ש-test-header=a,b יומר ל- test-header=a ו-test-header=b.
  3. allowDuplicates: מאפשרת שימוש בכמה כותרות HTTP (כפולות) עם אותו שם.
  4. multiValued, allowDuplicates: אפשר להשתמש בכותרות HTTP בכמה ערכים ובערכים כפולים.

HTTPHeader.HEADER_NAME

המאפיין הזה משמש לשינוי ההתנהגות של כותרת ספציפית ממה שצוין על ידי HTTPHeader.ANY

כנ"ל.

כותרות שאסור להזין בהן ערכים כפולים או כמה ערכים

כמו שהוסבר קודם, ב-Apigee Edge מותרות כפילויות וערכים מרובים ברוב כותרות ה-HTTP כברירת מחדל. הסיבה לכך היא שהמאפיין HTTPHeader.ANY מוגדר עם הערך multiValued, allowDuplicates..

ההגדרה נכתבה מחדש

במקרה של כותרות ספציפיות, ההגדרה שמוגדרת כברירת מחדל מוחלפת באמצעות אחת מהשיטות הבאות:

  • HTTPHeader.HEADER_NAME=multiValued, allowDuplicates

    ההגדרה הזו לא משנה את התנהגות ברירת המחדל. כלומר, מותר שיהיו כפילויות וכמה ערכים בכותרת הספציפית

    .
  • HTTPHeader.HEADER_NAME=

    ההגדרה הזו משנה את התנהגות ברירת המחדל. כלומר, אסור שיהיו כפילויות וכמה ערכים בכותרת הספציפית.

קביעת כותרות שאסור שיהיו בהן ערכים כפולים או כמה ערכים

בקטע הזה מוסבר איך לזהות את הפרטים הבאים:

  • הכותרות הספציפיות שאסור שיהיו להן כפילויות וכמה ערכים בהגדרה של Apigee Edge Private Cloud, וגם
  • הכותרות הספציפיות עם ההגדרה הקיימת
  1. במחשב של מעבד ההודעות, מחפשים את המאפיין HTTPHeader. בספרייה /opt/apigee/edge-message-processor/conf כמו שמוצג בהמשך:

    grep -ri "HTTPHeader." /opt/apigee/edge-message-processor/conf
    

    פלט לדוגמה:

    # grep -ri "HTTPHeader" /opt/apigee/edge-message-processor/conf
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.ANY=allowDuplicates, multiValued
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Connection=allowDuplicates, multiValued
    … <snipped>
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Host=
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Date=allowDuplicates
    …
    <snipped>
  2. כמו שמוסבר בקטע ההגדרה נכתבה מחדש, שימו לב לפרטים הבאים בפלט לדוגמה שלמעלה:
    1. כותרת ה-HTTP‏ Connection מוחלפת, אבל מותר שיהיו בה כפילויות וכמה ערכים
    2. הכותרות HTTP‏ Host ו-Expires נדרסות ואסור שיהיו להן כפילויות וערכים מרובים
    3. כותרת ה-HTTP‏ Date מוחלפת ומותר להכיל כפילויות, אבל אסור להכיל כמה ערכים
    4. כל הכותרות שמופיעות כאן (Connection, ‏Host, ‏Expires ו-Date בדוגמה שלמעלה) נקראות כותרות עם הגדרה קיימת במסמך הזה.

התנהגות של Apigee Edge

בטבלה הבאה מתואר אופן הפעולה של Apigee Edge כשכותרות נשלחות ככפילויות וכערכים מרובים, בהתאם לאופן שבו המאפיינים HTTPHeader מוגדרים במעבדי ההודעות, עם דוגמה HTTPHeader של test-header.

בקשה כותרות יוצאות על סמך הערך של conf/http.properties+HTTPHeader.test-header=
<Blank> allowDuplicates multiValued allowDuplicates, multiValued (ברירת מחדל)
test‑header=a,b test‑header=a,b test‑header=a,b

protocol.http.
DuplicateHeader

באופן פנימי, אנחנו מחלקים את test-header=a,b ל:

  • test-header=a וגם
  • test-header=b,

ואז מוצגת השגיאה DuplicateHeader.

test‑header=a,b

באופן פנימי, אנחנו מחלקים את test-header=a,b ל:

  • test-header=a וגם
  • test-header=b,

אבל אז הטופס המקורי נשלח אל היעד.

test‑header=a
test‑header=b
protocol.http.
DuplicateHeader
test‑header=a
test‑header=b
protocol.http.
DuplicateHeader
test‑header=a
test‑header=b

לפני שמתחילים

לפני שמבצעים את השלבים במאמר הזה, חשוב להבין איך מגדירים נכסים ב-Edge on Private Cloud, כמו שמתואר במאמר איך מגדירים את Edge.

הגדרת allowDuplicates וכמה ערכים לכותרות

כמו שמוסבר במאמר מאפייני כותרת HTTP שמאפשרים כפילויות ומספר ערכים,הערך של המאפיין HTTPHeader.ANY = allowDuplicates, multiValued מרמז שכל הכותרות יכולות לכלול כפילויות ומספר ערכים ב-Apigee Edge. עם זאת, יש כותרות מסוימות שהערכים שלהן נמחקים באופן מפורש כדי שלא יהיו כותרות כפולות או ערכים מרובים, באמצעות המאפיין HTTPHeader.HEADER_NAME.

בקטע הזה מוסבר איך להגדיר את המאפיין HTTPHeader.HEADER_NAME כדי לאפשר כפילויות וכמה ערכים לכל כותרות ה-HTTP האלה במעבדי ההודעות, באמצעות הטוקן המתאים לפי התחביר שמתואר במאמר איך מגדירים את Edge.

בקטע הזה נשתמש ב-Expires (וב-myheader) ככותרת לדוגמה שבה אנחנו רוצים לאפשר כפילויות וכמה ערכים, כמו שמוסבר בהמשך:

  1. קובעים את הערך הנוכחי של המאפיין HTTPHeaderHEADER_NAME כדי לוודא שהוא לא מופעל כבר כדי לאפשר כפילויות וכמה ערכים באמצעות הפקודה הבאה:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    לדוגמה, אם מנסים להגדיר את המאפיין עבור הכותרת Expires, צריך לבדוק את הערך הנוכחי של טוקן המאפיין HTTPHeader.Expires במעבד ההודעות:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    הפלט של הפקודה שלמעלה יהיה אחד מהבאים:

    1. אם הנכס מוגדר כריק, המשמעות היא שהערך נדרס (וזהו כותר עם הגדרה קיימת מראש) כדי שלא יתאפשרו כותרות כפולות וכמה ערכים. כלומר, אסור לשלוח את הכותרת Expires יותר מפעם אחת כחלק מבקשת ה-HTTP או מתגובת ה-HTTP אל Apigee.
    2. אם אין היטים לנכס הספציפי, המשמעות היא שהערך לא מוחלף (וזו לא כותרת עם הגדרה קיימת). המשמעות היא שאפשר לשלוח את הכותרת הספציפית יותר מפעם אחת (מותרים כפילויות) כחלק מבקשת ה-HTTP או מתגובת ה-HTTP אל Apigee Edge.
    3. המאפיין מוגדר עם הערך allowDuplicates, multiValued, כלומר הערך מוחלף באופן מפורש (וזו כותרת עם הגדרה קיימת). המשמעות היא שאפשר לשלוח את הכותרת הספציפית יותר מפעם אחת (מותר לשלוח כפילויות) כחלק מבקשת ה-HTTP או מתגובת ה-HTTP אל Apigee.

    פלט לדוגמה של פקודת החיפוש:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=

    בדוגמה של הפלט שלמעלה אפשר לראות שהמאפיין HTTPHeader.Expires מוגדר כריק. כלומר, המאפיין is overwritten משתנה לערך not allow duplicate or multiple values עבור הכותרת Expires.

  2. אם שמתם לב שהמאפיין שמתאים לכותרת הספציפית נכתב מחדש באופן מפורש כדי שלא לאפשר ערכים כפולים או כמה ערכים כמו בפלט לדוגמה שלמעלה, רק אז מבצעים את השלבים הבאים. אם הוא לא נכתב מחדש באופן מפורש, אפשר לדלג על שאר השלבים בקטע הזה.
  3. עריכה. אם הוא לא קיים, אפשר ליצור אותו:
    /opt/apigee/customer/application/message-processor.properties

    לדוגמה, כדי לפתוח את הקובץ באמצעות vi, מזינים את הפקודה הבאה:

    vi /opt/apigee/customer/application/message-processor.properties
    
  4. מוסיפים שורה בפורמט הבא:
    conf_http_HTTPHeader.Expires=allowDuplicates, multiValued
  5. שומרים את השינויים.
  6. מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש apigee. אם לא, מריצים את הפקודה הבאה:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  7. מפעילים מחדש את מעבד ההודעות:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    

    כדי להפעיל מחדש בלי להשפיע על התנועה, אפשר לעיין במאמר בנושא הפעלה מחדש הדרגתית של מעבדי הודעות בלי להשפיע על התנועה.

  8. אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי ההודעות.

אימות הכותרת מוגדרת כך שיש בה כפילויות ומספר ערכים

בקטע הזה מוסבר איך לוודא שהמאפיין HTTPHeader.HEADER_NAME של כותרת מסוימת עודכן בהצלחה כדי לאפשר כפילויות במעבדי ההודעות.

נשתמש ב-Expires ככותרת לדוגמה ונבדוק אם המאפיין המתאים HTTPHeader.Expires עודכן.

למרות שמשתמשים באסימון conf_http_HTTPHeader.Expires כדי לעדכן את הערך ב-מעבד בקשות, צריך לוודא שהערך החדש הוגדר בנכס HTTPHeader.Expires.

  1. במחשב של מעבד ההודעות, מחפשים את המאפיין HTTPHeader.HEADER_NAME בספרייה /opt/apigee/edge-message-processor/conf ובודקים אם הוא הוגדר עם הערך החדש כמו שמוצג בהמשך:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    לדוגמה, אם רוצים לוודא שהמאפיין HTTPHeader.Expires מוגדר עם הערך החדש, מריצים את הפקודה הבאה:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    
  2. אם הערך החדש מוגדר בהצלחה עבור HTTPHeader.HEADER_NAME במעבד ההודעות, הפקודה שלמעלה מציגה את הערך החדש בקובץ http.properties.
  3. דוגמה לתוצאה של הפקודה שלמעלה אחרי שמגדירים את allowDuplicates ואת multiValued:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=allowDuplicates, multiValued
  4. בדוגמה של הפלט שלמעלה, שימו לב שהמאפיין HTTPHeader.Expires הוגדר עם הערך החדש allowDuplicates, multiValued ב-http.properties. המשמעות היא שההתנהגות שמאפשרת כפילויות ומספר ערכים ב-HTTPHeader הוגדרה בהצלחה ב-Message Processor (מעבד ההודעות).
  5. אם עדיין מוצג הערך הישן של המאפיין HTTPHeader.HEADER_NAME, צריך לוודא שפעלתם לפי כל השלבים שמפורטים במאמר הגדרת allowDuplicates וערכים מרובים לכותרות. אם פספסתם שלב כלשהו, צריך לחזור על כל השלבים בצורה נכונה.

    חשוב לוודא ששרתי ה-proxy פועלים כמצופה, במיוחד אם יש לוגיקה פונקציונלית להשגת הכותרות ולהגדרתן ב-proxy.

  6. אם עדיין אין לך אפשרות לשנות את המאפיין, אפשר לפנות אל התמיכה של Apigee Edge.

השבתת allowDuplicates עבור כותרות

בקטע הזה מוסבר איך להגדיר את המאפיין HTTPHeader.{Headername} כדי לא לאפשר כפילויות ומספר ערכים בכותרת HTTP ספציפית במעבדי ההודעות, באמצעות הטוקן המתאים לפי התחביר שמתואר במאמר איך מגדירים את Edge.

בקטע הזה נשתמש ב-Expires (וב-myheader) כדוגמה לכותרת שלא נרצה לאפשר כפילויות שלה, כפי שמוסבר בהמשך:

  1. כדי לוודא שהמאפיין HTTPHeaderHEADER_NAME לא מושבת, כך שאפשר יהיה להשתמש בערכים כפולים ובכמה ערכים, צריך להשתמש בפקודה הבאה כדי לקבוע את הערך הנוכחי שלו:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    לדוגמה, אם מנסים להגדיר את הנכס עבור הכותרת Expires, בודקים את הערך הנוכחי של טוקן הנכס HTTPHeader.Expires במעבד ההודעות:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    הפלט של הפקודה שלמעלה יהיה אחד מהבאים:

    1. אם הנכס מוגדר כריק, המשמעות היא שהערך נכתב מחדש כ-NOT כדי לאפשר כותרות כפולות וכמה ערכים. כלומר, אסור לשלוח את הכותרת Expires יותר מפעם אחת כחלק מבקשת HTTP או מתגובת HTTP אל Apigee.
    2. אם אין היטים למאפיין הספציפי, המשמעות היא שהערך לא נכתב מחדש, וזו כותרת NOT עם הגדרה קיימת. המשמעות היא שאפשר לשלוח את הכותרת הספציפית יותר מפעם אחת (מותרים כפילויות) כחלק מבקשת ה-HTTP או מתגובת ה-HTTP אל Apigee Edge.
    3. אם המאפיין מוגדר עם הערך allowDuplicates, multiValued, המשמעות היא שהערך נכתב מחדש באופן מפורש וזו תצורה קיימת. עם זאת, המשמעות היא שאפשר לשלוח את הכותרת הספציפית יותר מפעם אחת (מותר לשלוח כפילויות) כחלק מבקשת HTTP או מתגובת HTTP ל-Apigee.

    פלט לדוגמה מס' 1

    פלט לדוגמה מספר 1 של פקודת החיפוש:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=allowDuplicates, multiValued

    בדוגמה של הפלט אפשר לראות שהמאפיין HTTPHeader.Expires מוגדר לערך allowDuplicates, multiValued. המשמעות היא שהמאפיין is overwritten to allow duplicate or multiple values עבור הכותרת Expires.

    פלט לדוגמה מס' 2

    דוגמה לפקודה ולפלט מספר 2 של פקודת החיפוש

    grep -ri "HTTPHeader.myheader" /opt/apigee/edge-message-processor/conf
    

    הפלט לדוגמה לא מציג פלט, מה שאומר שמאפיין HTTPHeader.myheader מוגדר ל-allowDuplicates, multiValued כברירת מחדל. זה גם אומר שהמאפיין לא נכתב מחדש עבור הכותרת myheader,

  2. אם אתם מבחינים באחת מהבעיות הבאות, צריך לבצע את שאר השלבים בקטע הזה:
    1. המאפיין שמתאים לכותרת הספציפית מוחלף כדי לאפשר כפילויות וכמה ערכים כמו בדוגמה Sample output #1 שלמעלה (כותרת עם הגדרה קיימת)
    2. אין היטים לנכס שמתאים לכותרת הספציפית, כמו בפלט לדוגמה מספר 2 שלמעלה (לא כותרת עם הגדרה קיימת)

    אם לא, מדלגים על שאר השלבים בקטע הזה.

  3. עורכים את הקובץ הבא. אם הוא לא קיים, אפשר ליצור אותו.
    /opt/apigee/customer/application/message-processor.properties

    לדוגמה, כדי לפתוח את הקובץ באמצעות vi, מזינים את הפקודה הבאה:

    vi /opt/apigee/customer/application/message-processor.properties
    
  4. מוסיפים לקובץ המאפיינים שורה בפורמט הבא:

    הגדרה קיימת

    תרחיש מספר 1: כותרת עם הגדרה קיימת מראש:

    conf_http_HTTPHeader.Expires=

    אין הגדרה קיימת

    תרחיש 2: לא מדובר בכותרת עם הגדרה קיימת מראש:

    conf/http.properties+HTTPHeader.myheader=
  5. שומרים את השינויים.
  6. מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש apigee. אם לא, מריצים את הפקודה הבאה:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  7. מפעילים מחדש את מעבד ההודעות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    

    כדי להפעיל מחדש בלי להשפיע על התנועה, אפשר לעיין במאמר בנושא הפעלה מחדש הדרגתית של מעבדי הודעות בלי להשפיע על התנועה.

  8. אם יש לכם יותר ממעבד הודעות אחד, חוזרים על השלבים שלמעלה בכל מעבד ההודעות.

אימות הכותרת מוגדר כך שלא ניתן להשתמש בערכים כפולים או בכמה ערכים

בקטע הזה מוסבר איך לוודא שהמאפיין HTTPHeader.HEADER_NAME של כותרת ספציפית עודכן בהצלחה כך שלא יתאפשרו כפילויות במעבדי ההודעות.

נשתמש ב-Expires (וב-myheader) כדוגמה לכותרת ונבדוק אם הנכס התואם HTTPHeader.Expires (וב-HTTPHeader.myheader) עודכן.

  1. במחשב של מעבד ההודעות, מחפשים את המאפיין HTTPHeader.HEADER_NAME בספרייה /opt/apigee/edge-message- processor/conf ובודקים אם הוא הוגדר עם הערך החדש כמו שמוצג בהמשך:

    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    לדוגמה, אם רוצים לבדוק שהמאפיין HTTPHeader.Expires מוגדר עם הערך החדש, אפשר להריץ את הפקודה הבאה:

    הגדרה קיימת

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    אין הגדרה קיימת

    grep -ri "HTTPHeader.myheader" /opt/apigee/edge-message-processor/conf
    
  2. אם הערך החדש של כותרת ה-HTTP מוגדר בהצלחה עבור HTTPHeader.HEADER_NAME I במעבד ההודעות, הפקודה שלמעלה מציגה את הערך החדש בקובץ http.properties.
  3. תוצאה לדוגמה מהפקודה שלמעלה אחרי השבתה של allowDuplicates:

    הגדרה קיימת

    תרחיש מספר 1: כותרת Expires (כותרת עם הגדרה קיימת)

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=

    אין הגדרה קיימת

    תרחיש מספר 2: הכותרת myheader (לא כותרת עם הגדרה קיימת מראש)

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.myheader=
  4. בדוגמת הפלט שלמעלה, שימו לב שהמאפיין HTTPHeader.Expires ( ו-HTTPHeader.myheader ) הוגדר עם הערך החדש {blank} ב-http.properties. המשמעות היא שההתנהגות שמאפשרת כפילויות וכמה ערכים עבור כותרת ה-HTTP הספציפית Expires (ו-myheader) מושבתת בהצלחה במעבד ההודעות.
  5. אם עדיין מוצג הערך הישן של המאפיין HTTPHeader.Expires (or HTTPHeader.myheader), צריך לוודא שפעלתם לפי כל השלבים שמפורטים במאמר בנושא הגדרת allowDuplicates וערכים מרובים לכותרות. אם פספסתם שלב כלשהו, צריך לחזור על כל השלבים בצורה נכונה.

    חשוב לוודא ששרתי ה-proxy פועלים כמצופה, במיוחד אם יש לוגיקה פונקציונלית לקבלת הכותרות ולהגדרתן ב-proxy.

  6. אם עדיין אין לך אפשרות לשנות את המאפיין, אפשר לפנות אל התמיכה של Apigee Edge.