Konfigurowanie nagłówka zezwalania na dostęp do usługi 405 w procesorach wiadomości

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W komunikacji klient-serwer w odpowiedzi serwer odpowiada kodem stanu HTTP 405 Method Not Allowed, jeśli przedstawiona przez klienta metoda żądania HTTP jest znana serwerowi, ale nie jest obsługiwana przez zasób docelowy. Podobnie w Apigee Edge serwer backendu może odpowiadać z kodem stanu HTTP 405 Method Not Allowed.

Apigee Edge wymaga, aby serwer backendu wysyłał odpowiedzi 405 Method Not Allowed z listą dozwolonych metod w nagłówku Allow, zgodnie ze specyfikacją RFC 7231, sekcja 6.5.5: Niedozwolona metoda 405.

Nagłówek Allow musi być wysyłany w tym formacie:

Allow: HTTP_METHODS

Jeśli na przykład serwer backendu zezwala na metody GET, POST i HEAD, musisz upewnić się, że nagłówek Allow zawiera je w ten sposób:

Allow: GET, POST, HEAD

Jeśli serwer backendu nie wyśle nagłówka Allow z kodem stanu HTTP 405 Method Not Allowed,, Apigee zwróci do aplikacji klienckiej kod stanu HTTP 502 Bad Gateway z kodem błędu protocol.http.Response405WithoutAllowHeader . Zalecanym rozwiązaniem w celu usunięcia tego błędu jest naprawienie serwera backendu zgodnie ze specyfikacją RFC 7231, sekcja 6.5.5: 405 Niedozwolona metoda lub skorzystanie z obsługi błędów w celu uzyskania odpowiedzi za pomocą kodu stanu HTTP 405 Method Not Allowed z uwzględnieniem nagłówka Allow zgodnie ze specyfikacją 502 Błędna brama – odpowiedź 4.

Jednak w niektórych wyjątkowych przypadkach naprawienie backendu lub zmodyfikowanie serwera proxy interfejsu API może nie być możliwe w celu natychmiastowego rozwiązania tego problemu.

W takich przypadkach możesz tymczasowo ustawić nagłówek ignorowania zezwolenia dla właściwości 405 HTTP.ignore.allow_header.for.405 na poziomie procesora wiadomości. Ustawienie tej właściwości na true uniemożliwia Apigee zwracanie odpowiedzi 502 Bad Gateway aplikacjom klienckim, nawet jeśli serwer backendu wysyła kod stanu HTTP 405 Method Not Allowed bez nagłówka Allow.

Gdy będzie już wszystko gotowe do naprawienia serwera backendu, tak aby wysyłał kod stanu HTTP 405 Method Not Allowed z nagłówkiem Allow, możesz przywrócić wartość domyślną false właściwości HTTP.ignore.allow_header.for.405.

Zanim zaczniesz

Zanim wykonasz czynności opisane w tym dokumencie, upewnij się, że rozumiesz następujące zagadnienia:

Konfigurowanie nagłówka ignorowania zezwalania na wartość Prawda w procesorach przetwarzania wiadomości dla właściwości 405

W Apigee Edge właściwość HTTP.ignore.allow_header.for.405 ma domyślnie wartość false. Dzięki temu Apigee Edge będzie zwracać aplikacjom klienckim żądanie 502 Bad Gateway z kodem błędu protocol.http.Response405WithoutAllowHeader, jeśli serwer backendu wyśle kod stanu HTTP 405 Method Not Allowed bez nagłówka Allow. Jeśli chcesz uniemożliwić Apigee Edge wysyłanie kodu 502 Bad Gateway do aplikacji klienckich, musisz ustawić wartość właściwości HTTP.ignore.allow_header.for.405 na true w procesorach wiadomości.

W tej sekcji dowiesz się, jak skonfigurować właściwość HTTP.ignore.allow_header.for.405 na true w procesorach wiadomości przy użyciu tokena zgodnie ze składnią opisaną w artykule Jak skonfigurować Edge.

  1. Na komputerze z procesorem wiadomości otwórz poniższy plik w edytorze. Jeśli jeszcze nie istnieje, utwórz go.

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

    Aby na przykład otworzyć plik za pomocą vi, wpisz:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Dodaj do pliku właściwości wiersz w tym formacie:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Zapisz zmiany.
  4. Upewnij się, że plik właściwości należy do użytkownika apigee, jak pokazano poniżej:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Jeśli masz więcej niż 1 procesor wiadomości, powtórz powyższe kroki na wszystkich procesorach.

Sprawdzanie, czy w procesach przetwarzania wiadomości nagłówek ignorowania zezwalania na kod 405 ma wartość Prawda ma wartość Prawda

Ta sekcja wyjaśnia, jak sprawdzić, czy właściwość HTTP.ignore.allow_header.for.405 w procesorach wiadomości została zaktualizowana do true.

Mimo że do aktualizowania wartości właściwości w procesorze wiadomości używasz tokena conf_http_HTTP.ignore.allow_header.for.405, musisz sprawdzić, czy rzeczywista właściwość HTTP.ignore.allow_header.for.405 została ustawiona na true.

  1. Na komputerze procesora wiadomości wyszukaj właściwość HTTP.ignore.allow_header.for.405 w katalogu /opt/apigee/edge-message-processor/conf i sprawdź, czy została ustawiona na true, jak pokazano poniżej:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Jeśli właściwość została zaktualizowana w procesorze wiadomości, to polecenie powinno wyświetlić wartość właściwości HTTP.ignore.allow_header.for.405 jako true w pliku http.properties, jak pokazano poniżej:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Jeśli nadal widzisz wartość właściwości HTTP.ignore.allow_header.for.405 jako false, sprawdź, czy zostały wykonane wszystkie czynności opisane w sekcji Konfigurowanie nagłówka reguły ignorowania zezwalania na wartość 405 w systemach przetwarzania wiadomości. Jeśli pominięto jakiś krok, powtórz wszystkie kroki ponownie.
  4. Jeśli nadal nie możesz zmodyfikować właściwości HTTP.ignore.allow_header.for.405, skontaktuj się z zespołem pomocy Apigee Edge.

Konfigurowanie nagłówka ignorowania zezwalania na wartość fałsz w procesorach przetwarzania wiadomości dla właściwości 405

W tej sekcji wyjaśniono, jak skonfigurować wartość domyślną HTTP.ignore.allow_header.for.405 właściwości false w procesorze wiadomości przy użyciu tokena zgodnie ze składnią opisaną w sekcji Jak skonfigurować Edge

  1. Sprawdź, czy właściwość HTTP.ignore.allow_header.for.405 została zmieniona na true. Aby to zrobić, wyszukaj tę właściwość w katalogu /opt/apigee/edge-message-processor/conf i sprawdź jej wartość za pomocą tego polecenia:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Jeśli właściwość w procesorze wiadomości ma wartość true, to polecenie powinno wyświetlić wartość właściwości HTTP.ignore.allow_header.for.405 jako true w pliku http.properties, jak pokazano poniżej:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Jeśli powyższe polecenie wskazuje, że właściwość HTTP.ignore.allow_header.for.405 jest ustawiona na false (wartość domyślna), nie musisz robić nic więcej. W tym celu pomiń kolejne kroki.
  4. Jeśli właściwość HTTP.ignore.allow_header.for.405 ma ustawienie true, wykonaj te czynności, aby przywrócić wartość domyślną false.
  5. Na komputerze procesora wiadomości otwórz ten plik w edytorze:

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

    Aby na przykład otworzyć plik za pomocą vi, wpisz:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Z pliku właściwości usuń ten wiersz:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Zapisz zmiany.
  8. Upewnij się, że plik właściwości należy do użytkownika apigee, jak pokazano poniżej:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Jeśli masz więcej niż 1 procesor wiadomości, powtórz powyższe kroki na wszystkich procesorach.

Weryfikowanie nagłówka ignorowania zezwalania na działanie 405 ma w procesorach przetwarzania wiadomości wartość fałsz

Ta sekcja wyjaśnia, jak sprawdzić, czy właściwość HTTP.ignore.allow_header.for.405 w procesorach wiadomości została zaktualizowana do false.

Mimo że do aktualizowania wartości w procesorze wiadomości używasz tokena conf_http_HTTP.ignore.allow_header.for.405, musisz sprawdzić, czy rzeczywista właściwość HTTP.ignore.allow_header.for.405 została ustawiona na false.

  1. Na komputerze procesora wiadomości wyszukaj właściwość HTTP.ignore.allow_header.for.405 w katalogu /opt/apigee/edge-message- processor/conf i sprawdź, czy została ustawiona na false, jak pokazano poniżej:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Jeśli właściwość została zaktualizowana w procesorze wiadomości, to polecenie powinno wyświetlić wartość właściwości HTTP.ignore.allow_header.for.405 jako false w pliku http.properties, jak pokazano poniżej:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Jeśli nadal widzisz wartość właściwości HTTP.ignore.allow_header.for.405 jako true, sprawdź, czy zostały wykonane wszystkie czynności opisane w sekcji Konfigurowanie nagłówka ignorowania zezwalającego dla właściwości 405 na fałsz w systemach przetwarzania wiadomości. Jeśli pominięto jakiś krok, powtórz wszystkie kroki ponownie.
  4. Jeśli nadal nie możesz zmodyfikować właściwości HTTP.ignore.allow_header.for.405, skontaktuj się z zespołem pomocy Apigee Edge.