Configurazione dell'intestazione da ignorare per la proprietà 405 negli elaboratori dei messaggi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Nella comunicazione client-server, un server risponde con il codice di stato HTTP 405 Method Not Allowed se il metodo di richiesta HTTP presentato dal client è noto al server, ma non è supportato dalla risorsa di destinazione. Analogamente, in Apigee Edge, il server di backend può rispondere con il codice di stato HTTP 405 Method Not Allowed.

Apigee Edge prevede che il server di backend invii risposte 405 Method Not Allowed con l'elenco dei metodi consentiti nell'intestazione Allow, secondo la specifica RFC 7231, sezione 6.5.5: 405 Method Not Allowed.

L'intestazione Allow deve essere inviata nel seguente formato:

Allow: HTTP_METHODS

Ad esempio, se il server di backend consente i metodi GET, POST e HEAD, devi assicurarti che l'intestazione Allow li contenga come segue:

Allow: GET, POST, HEAD

Se il server di backend non invia l'intestazione Allow con il codice di stato HTTP 405 Method Not Allowed,, Apigee restituisce il codice di stato HTTP 502 Bad Gateway con il codice di errore protocol.http.Response405WithoutAllowHeader all'applicazione client. La soluzione consigliata per risolvere questo errore è correggere il server di backend affinché rispetti la specifica RFC 7231, sezione 6.5.5: 405 Method Not Allowed oppure utilizzare la gestione degli errori per rispondere con il codice di stato HTTP 405 Method Not Allowed inclusa l'intestazione Allow come spiegato nel playbook per la risoluzione dei problemi 502 Bad Gateway - Response 4.05 senza intestazione Consenti

Tuttavia, in alcuni casi eccezionali potrebbe non essere possibile correggere il backend o modificare il proxy API per risolvere il problema immediatamente.

In questi casi, puoi impostare temporaneamente l'intestazione di autorizzazione Ignora per la proprietà 405 HTTP.ignore.allow_header.for.405 a livello di Processore di messaggi. L'impostazione di questa proprietà su true impedisce ad Apigee di restituire la risposta 502 Bad Gateway alle applicazioni client anche se il server di backend invia il codice di stato HTTP 405 Method Not Allowed senza l'intestazione Allow.

Quando sei in grado di correggere il server di backend in modo che invii il codice di stato HTTP 405 Method Not Allowed con l'intestazione Allow, puoi ripristinare il valore predefinito false per la proprietà HTTP.ignore.allow_header.for.405.

Prima di iniziare

Prima di seguire la procedura descritta in questo documento, assicurati di comprendere i seguenti argomenti:

Configurazione dell'intestazione Ignora autorizzazione per la proprietà 405 su true nei processori di messaggi

In Apigee Edge, la proprietà HTTP.ignore.allow_header.for.405 è impostata su false per impostazione predefinita. In questo modo Apigee Edge può restituire 502 Bad Gateway con il codice di errore protocol.http.Response405WithoutAllowHeader alle applicazioni client se il server di backend invia il codice di stato HTTP 405 Method Not Allowed senza l'intestazione Allow. Se vuoi impedire ad Apigee Edge di inviare 502 Bad Gateway alle applicazioni client, devi impostare il valore della proprietà HTTP.ignore.allow_header.for.405 su true sui processori di messaggi.

Questa sezione spiega come configurare la proprietà HTTP.ignore.allow_header.for.405 su true sui processori di messaggi, utilizzando il token secondo la sintassi descritta in Come configurare Edge.

  1. Nel computer del processore di messaggi, apri il seguente file in un editor. Se non esiste già, crealo.

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

    Ad esempio, per aprire il file utilizzando vi, inserisci quanto segue:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Aggiungi una riga nel seguente formato al file delle proprietà:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Salva le modifiche.
  4. Assicurati che il file delle proprietà sia di proprietà dell'utente apigee, come mostrato di seguito:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Riavvia il processore di messaggi come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Se disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

La verifica dell'opzione Ignora autorizzazione per la proprietà 405 è impostata su true nei processori di messaggi

Questa sezione spiega come verificare che la proprietà HTTP.ignore.allow_header.for.405 sia stata aggiornata correttamente a true sui processori di messaggi.

Anche se utilizzi il token conf_http_HTTP.ignore.allow_header.for.405 per aggiornare il valore della proprietà nel processore di messaggi, devi verificare che la proprietà effettiva HTTP.ignore.allow_header.for.405 sia stata impostata su true.

  1. Nel computer del processore di messaggi, cerca la proprietà HTTP.ignore.allow_header.for.405 nella directory /opt/apigee/edge-message-processor/conf e controlla se è stata impostata su true come mostrato di seguito:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Se la proprietà viene aggiornata correttamente sul processore di messaggi, il comando riportato sopra dovrebbe mostrare il valore della proprietà HTTP.ignore.allow_header.for.405 come true nel file http.properties, come mostrato di seguito:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Se vedi ancora il valore della proprietà HTTP.ignore.allow_header.for.405 come false, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare l'intestazione Ignora autorizzazione per la proprietà 405 su true nei processori di messaggi. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi.
  4. Se ancora non riesci a modificare la proprietà HTTP.ignore.allow_header.for.405, contatta l'assistenza Apigee Edge.

Configurazione dell'intestazione Ignora autorizzazione per la proprietà 405 su false sui processori di messaggi

Questa sezione spiega come configurare la proprietà HTTP.ignore.allow_header.for.405 sul suo valore predefinito false nel processore di messaggi, utilizzando il token secondo la sintassi descritta in Come configurare Edge.

  1. Verifica se la proprietà HTTP.ignore.allow_header.for.405 viene modificata in true. A questo scopo, cerca questa proprietà nella directory /opt/apigee/edge-message-processor/conf e controllane il valore utilizzando il seguente comando:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Se la proprietà è impostata su true nel processore di messaggi, il comando riportato sopra dovrebbe mostrare il valore della proprietà HTTP.ignore.allow_header.for.405 come true nel file http.properties, come mostrato di seguito:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Se il comando riportato sopra indica che la proprietà HTTP.ignore.allow_header.for.405 è impostata su false (valore predefinito), non devi fare altro. Ciò significa che ignora i seguenti passaggi.
  4. Se la proprietà HTTP.ignore.allow_header.for.405 è impostata su true, segui questi passaggi per ripristinare il valore predefinito false.
  5. Nel computer del processore di messaggi, apri il seguente file in un editor:

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

    Ad esempio, per aprire il file utilizzando vi, inserisci quanto segue:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Rimuovi la seguente riga dal file delle proprietà:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Salva le modifiche.
  8. Assicurati che il file delle proprietà sia di proprietà dell'utente apigee, come mostrato di seguito:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Riavvia il processore di messaggi come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Se disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

La verifica dell'opzione Ignora autorizzazione per la proprietà 405 è impostata su false sui processori di messaggi

Questa sezione spiega come verificare che la proprietà HTTP.ignore.allow_header.for.405 sia stata aggiornata correttamente a false sui processori di messaggi.

Anche se utilizzi il token conf_http_HTTP.ignore.allow_header.for.405 per aggiornare il valore nel processore di messaggi, devi verificare che la proprietà effettiva HTTP.ignore.allow_header.for.405 sia stata impostata su false.

  1. Nel computer del processore di messaggi, cerca la proprietà HTTP.ignore.allow_header.for.405 nella directory /opt/apigee/edge-message- processor/conf e controlla se è stata impostata su false come mostrato di seguito:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Se la proprietà viene aggiornata correttamente sul processore di messaggi, il comando riportato sopra dovrebbe mostrare il valore della proprietà HTTP.ignore.allow_header.for.405 come false nel file http.properties, come mostrato di seguito:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Se vedi ancora il valore della proprietà HTTP.ignore.allow_header.for.405 come true, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare l'intestazione di autorizzazione Ignora per la proprietà 405 su false sui processori di messaggi correttamente. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi.
  4. Se ancora non riesci a modificare la proprietà HTTP.ignore.allow_header.for.405, contatta l'assistenza Apigee Edge.