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

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

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. Allo stesso modo, in Apigee Edge, il server di backend può rispondere con il codice di stato HTTP 405 Method Not Allowed.

Apigee Edge si aspetta che il server di backend invii risposte 405 Method Not Allowed con l'elenco dei metodi consentiti nell'intestazione Allow, come da 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 in modo che rispetti la specifica RFC 7231, sezione 6.5.5: 405 Method Not Allowed o utilizzare la gestione degli errori per rispondere con il codice di stato HTTP 405 Method Not Allowed inclusa l' Allow intestazione, come spiegato nel playbook per la risoluzione dei problemi 502 Bad Gateway - Response 405 without Allow header.

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

In questi casi, puoi impostare temporaneamente l'intestazione di autorizzazione di ignoranza per la 405 proprietà HTTP.ignore.allow_header.for.405 a livello di processore di messaggi. Se imposti questa proprietà su true, Apigee non restituisce 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 puoi 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 della proprietà HTTP.ignore.allow_header.for.405.

Prima di iniziare

Prima di seguire i passaggi descritti in questo documento, assicurati di comprendere i seguenti argomenti:

Configurare l'intestazione di autorizzazione di ignoranza per la proprietà 405 su true in Message Processor

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 di proprietà HTTP.ignore.allow_header.for.405 su true nei Message Processor.

Questa sezione spiega come configurare la proprietà HTTP.ignore.allow_header.for.405 su true nei Message Processor, utilizzando il token in base alla sintassi descritta in Come configurare Edge.

  1. Nella macchina 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 hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

Verificare che l'intestazione di autorizzazione di ignoranza per la proprietà 405 sia impostata su true in Message Processor

Questa sezione spiega come verificare che la proprietà HTTP.ignore.allow_header.for.405 sia stata aggiornata correttamente su true nei Message Processor.

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 se la proprietà effettiva HTTP.ignore.allow_header.for.405 è stata impostata su true.

  1. Nella macchina processore di messaggi, cerca la proprietà HTTP.ignore.allow_header.for.405 nella /opt/apigee/edge-message-processor/conf directory e verifica 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 nel processore di messaggi, il comando precedente 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 continui a visualizzare 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 di autorizzazione di ignoranza per la proprietà 405 su true in Message Processor. Se hai saltato un passaggio, ripeti correttamente tutti i passaggi.
  4. Se non riesci ancora a modificare la proprietà HTTP.ignore.allow_header.for.405, contatta l'assistenza Apigee Edge.

Configurare l'intestazione di autorizzazione di ignoranza per la proprietà 405 su false in Message Processor

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

  1. Verifica se la proprietà HTTP.ignore.allow_header.for.405 è stata modificata su true. Puoi farlo cercando questa proprietà nella directory /opt/apigee/edge-message-processor/conf e controllandone 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 precedente 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 precedente mostra che la proprietà HTTP.ignore.allow_header.for.405 è impostata su false (valore predefinito), non devi fare altro. Ovvero, salta i passaggi seguenti.
  4. Se la proprietà HTTP.ignore.allow_header.for.405 è impostata su true, segui questi passaggi per ripristinare il valore predefinito false.
  5. Nella macchina 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 hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

Verificare che l'intestazione di autorizzazione di ignoranza per la proprietà 405 sia impostata su false in Message Processor

Questa sezione spiega come verificare che la proprietà HTTP.ignore.allow_header.for.405 sia stata aggiornata correttamente su false nei Message Processor.

Anche se utilizzi il token conf_http_HTTP.ignore.allow_header.for.405 per aggiornare il valore nel Message Processor, devi verificare se la proprietà effettiva HTTP.ignore.allow_header.for.405 è stata impostata su false.

  1. Nella macchina processore di messaggi, cerca la proprietà HTTP.ignore.allow_header.for.405 nella directory /opt/apigee/edge-message- processor/conf e verifica 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 nel processore di messaggi, il comando precedente 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 continui a visualizzare 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 di ignoranza per la proprietà 405 su false in Message Processor. Se hai saltato un passaggio, ripeti correttamente tutti i passaggi.
  4. Se non riesci ancora a modificare la proprietà HTTP.ignore.allow_header.for.405, contatta l'assistenza Apigee Edge.