Mesaj İşleyicilerde 405 mülkü için yoksayma izni başlığını yapılandırma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

İstemci-sunucu iletişiminde, istemci tarafından sunulan HTTP istek yöntemi sunucu tarafından biliniyorsa ancak hedef kaynak tarafından desteklenmiyorsa sunucu 405 Method Not Allowed HTTP durum koduyla yanıt verir. Benzer şekilde, Apigee Edge'de arka uç sunucusu 405 Method Not Allowed. HTTP durum koduyla yanıt verebilir.

Apigee Edge, arka uç sunucusunun 405 Method Not Allowed yanıtlarını göndermesini bekler. Allow başlığında, spesifikasyona göre izin verilen yöntemlerin listesiyle birlikte RFC 7231, bölüm 6.5.5: 405 Method Not Allowed.

Allow başlığı aşağıdaki biçimde gönderilmelidir:

Allow: HTTP_METHODS

Örneğin, arka uç sunucunuz GET, POST ve HEAD yöntemlerine izin veriyorsa Allow başlığının bunları aşağıdaki gibi içerdiğinden emin olmanız gerekir:

Allow: GET, POST, HEAD

Arka uç sunucusu, Allow üstbilgisini HTTP durum kodu 405 Method Not Allowed, ile birlikte göndermezse Apigee, istemci uygulamasına hata kodu protocol.http.Response405WithoutAllowHeader ile birlikte HTTP durum kodu 502 Bad Gateway'yi döndürür. Bu hatayı gidermek için önerilen çözüm, arka uç sunucusunu RFC 7231, bölüm 6.5.5: 405 Method Not Allowed spesifikasyonuna uyacak şekilde düzeltmek veya hata yönetimi kullanarak sorun giderme oyun kitabında 502 Bad Gateway - Response 405 without Allow header bölümünde açıklandığı gibi Allow üstbilgisini içeren 405 Method Not Allowed HTTP durum koduyla yanıt vermektir.

Ancak bazı istisnai durumlarda, arka uçunuzu düzeltmek veya API proxy'nizi bu sorunu hemen giderecek şekilde değiştirmek mümkün olmayabilir.

Bu gibi durumlarda, 405 özelliği için izin verilen üstbilgiyi yoksayma ayarını HTTP.ignore.allow_header.for.405 Mesaj İşleyici düzeyinde geçici olarak ayarlayabilirsiniz. Bu özelliği true olarak ayarlamak, arka uç sunucusu Allow başlığı olmadan 405 Method Not Allowed HTTP durum kodunu gönderse bile Apigee'nin istemci uygulamalarına 502 Bad Gateway yanıtını döndürmesini engeller.

Arka uç sunucunuzu Allow üstbilgisiyle birlikte 405 Method Not Allowed HTTP durum kodu gönderecek şekilde düzeltebildiğinizde HTTP.ignore.allow_header.for.405 özelliğini varsayılan değeri false'e geri döndürebilirsiniz.

Başlamadan önce

Bu belgedeki adımları kullanmadan önce aşağıdaki konuları anladığınızdan emin olun:

İleti işlemcilerinde 405 özelliği için "ignore allow header" seçeneğini true olarak yapılandırma

Apigee Edge'de HTTP.ignore.allow_header.for.405 özelliği varsayılan olarak false olarak ayarlanır. Bu, arka uç sunucusu Allow üstbilgisi olmadan 405 Method Not Allowed HTTP durum kodunu gönderirse Apigee Edge'in istemci uygulamalarına 502 Bad Gateway ile protocol.http.Response405WithoutAllowHeader hata kodunu döndürmesini sağlar. Apigee Edge'in istemci uygulamalarına 502 Bad Gateway göndermesini engellemek istiyorsanız HTTP.ignore.allow_header.for.405 özelliğinin değerini Mesaj İşlemciler'de true olarak ayarlamanız gerekir.

Bu bölümde, Edge'i yapılandırma bölümünde açıklanan söz dizimine uygun şekilde jetonu kullanarak, Mesaj İşleyiciler'de HTTP.ignore.allow_header.for.405 özelliğini true olarak nasıl yapılandıracağınız açıklanmaktadır.

  1. Mesaj İşleyici makinesinde aşağıdaki dosyayı bir düzenleyicide açın. Bu klasör yoksa oluşturun.

    /opt/apigee/customer/application/message-processor.properties

    Örneğin, dosyayı vi kullanarak açmak için aşağıdakileri girin:

    vi /opt/apigee/customer/application/message-processor.properties
  2. Özellikler dosyasına aşağıdaki biçimde bir satır ekleyin:
    conf_http_HTTP.ignore.allow_header.for.405=true
  3. Değişikliklerinizi kaydedin.
  4. Özellikler dosyasının, aşağıda gösterildiği gibi apigee kullanıcısına ait olduğundan emin olun:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Mesaj İşleyici'yi aşağıda gösterildiği gibi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Birden fazla Mesaj İşleyiciniz varsa yukarıdaki adımları tüm Mesaj İşleyicilerde tekrarlayın.

405 özelliği için izin verilen üstbilgiyi yoksayma özelliğinin, ileti işlemcilerinde doğru olarak ayarlandığını doğrulama

Bu bölümde, mülkün HTTP.ignore.allow_header.for.405 Mesaj İşleyiciler'de true sürümüne başarıyla güncellendiğinin nasıl doğrulanacağı açıklanmaktadır.

İleti işlemcisindeki özelliğin değerini güncellemek için conf_http_HTTP.ignore.allow_header.for.405 jetonunu kullanıyor olsanız bile gerçek özelliğin HTTP.ignore.allow_header.for.405 true olarak ayarlanıp ayarlanmadığını doğrulamanız gerekir.

  1. Mesaj İşleyici makinesinde, HTTP.ignore.allow_header.for.405 özelliğini /opt/apigee/edge-message-processor/conf dizininde arayın ve aşağıda gösterildiği gibi true olarak ayarlanıp ayarlanmadığını kontrol edin:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Mülk, Mesaj İşleyici'de başarıyla güncellenirse yukarıdaki komut, mülkün HTTP.ignore.allow_header.for.405 değerini aşağıdaki gibi http.properties dosyasında true olarak gösterir:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. Mülk için HTTP.ignore.allow_header.for.405 değeri hâlâ false olarak görünüyorsa İleti İşlemcilerinde 405 mülkü için izin verilmeyen başlığı doğru olarak yapılandırma başlıklı makalede belirtilen tüm adımları uyguladığınızı doğrulayın. Herhangi bir adımı atladıysanız tüm adımları tekrar doğru şekilde uygulayın.
  4. Mülkü hâlâ değiştiremiyorsanız HTTP.ignore.allow_header.for.405 Apigee Edge Destek Ekibi ile iletişime geçin.

İleti işlemcilerinde 405 özelliği için "üstbilgiye izin ver" ayarını false olarak yapılandırma

Bu bölümde, Edge'i yapılandırma bölümünde açıklanan söz dizimine göre jeton kullanılarak, Mesaj İşleyici'de HTTP.ignore.allow_header.for.405 özelliğinin varsayılan değerine false nasıl ayarlanacağı açıklanmaktadır.

  1. HTTP.ignore.allow_header.for.405 özelliğinin true olarak değiştirilip değiştirilmediğini doğrulayın. Bu işlemi, /opt/apigee/edge-message-processor/conf dizininde bu özelliği arayıp aşağıdaki komutu kullanarak değerini kontrol ederek yapabilirsiniz:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Mülk, Mesaj İşleyici'de true olarak ayarlanmışsa yukarıdaki komut, http.properties dosyasında mülkün HTTP.ignore.allow_header.for.405 değerini aşağıdaki gibi true olarak göstermelidir:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. Yukarıdaki komut, HTTP.ignore.allow_header.for.405 özelliğinin false (varsayılan değer) olarak ayarlandığını gösteriyorsa başka bir işlem yapmanız gerekmez. Bu durumda aşağıdaki adımları atlayabilirsiniz.
  4. HTTP.ignore.allow_header.for.405 özelliği true olarak ayarlanmışsa varsayılan değeri false'ye geri dönmek için aşağıdaki adımları uygulayın.
  5. Mesaj İşleyici makinesinde aşağıdaki dosyayı bir düzenleyicide açın:

    /opt/apigee/customer/application/message-processor.properties

    Örneğin, dosyayı vi kullanarak açmak için aşağıdakileri girin:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Özellikler dosyasından aşağıdaki satırı kaldırın:
    conf_http_HTTP.ignore.allow_header.for.405=true
  7. Değişikliklerinizi kaydedin.
  8. Özellikler dosyasının, aşağıda gösterildiği gibi apigee kullanıcısına ait olduğundan emin olun:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Mesaj İşleyici'yi aşağıda gösterildiği gibi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Birden fazla Mesaj İşleyiciniz varsa yukarıdaki adımları tüm Mesaj İşleyicilerde tekrarlayın.

405 özelliği için "izin verilen üstbilgiyi yoksay" ayarının ileti işlemcilerinde yanlış olarak ayarlandığını doğrulama

Bu bölümde, mülkün HTTP.ignore.allow_header.for.405 Mesaj İşleyiciler'de false sürümüne başarıyla güncellendiğinin nasıl doğrulanacağı açıklanmaktadır.

İleti işlemcisindeki değeri güncellemek için conf_http_HTTP.ignore.allow_header.for.405 jetonunu kullanıyor olsanız bile gerçek mülkün HTTP.ignore.allow_header.for.405 false olarak ayarlanıp ayarlanmadığını doğrulamanız gerekir.

  1. Mesaj İşleyici makinesinde, /opt/apigee/edge-message- processor/conf dizininde HTTP.ignore.allow_header.for.405 özelliğini arayın ve aşağıda gösterildiği gibi false olarak ayarlanıp ayarlanmadığını kontrol edin:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Mülk, Mesaj İşleyici'de başarıyla güncellenirse yukarıdaki komut, mülkün HTTP.ignore.allow_header.for.405 değerini aşağıdaki gibi http.properties dosyasında false olarak gösterir:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
  3. Mülk için HTTP.ignore.allow_header.for.405 değeri hâlâ true olarak görünüyorsa İleti İşlemcilerinde 405 mülkü için "izin ver" üstbilgisini yoksayma özelliğini yanlış olarak yapılandırma bölümünde belirtilen tüm adımları doğru şekilde uyguladığınızı doğrulayın. Herhangi bir adımı atladıysanız tüm adımları tekrar doğru şekilde uygulayın.
  4. Mülkü hâlâ değiştiremiyorsanız HTTP.ignore.allow_header.for.405 Apigee Edge Destek Ekibi ile iletişime geçin.