Como configurar o cabeçalho "ignore ignorar" para a propriedade 405 nos processadores de mensagens

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Na comunicação cliente-servidor, um servidor responderá com o código de status HTTP 405 Method Not Allowed se o método de solicitação HTTP apresentado pelo cliente for conhecido pelo servidor, mas não for aceito pelo recurso de destino. Da mesma forma, na Apigee Edge, o servidor de back-end pode responder com o código de status HTTP 405 Method Not Allowed.

O Apigee Edge espera que o servidor de back-end envie respostas 405 Method Not Allowed com a lista de métodos permitidos no cabeçalho Allow, conforme a especificação RFC 7231, seção 6.5.5: método 405 não permitido (em inglês).

O cabeçalho Allow precisa ser enviado no seguinte formato:

Allow: HTTP_METHODS

Por exemplo, se o servidor de back-end permitir os métodos GET, POST e HEAD, verifique se o cabeçalho Allow os contém da seguinte maneira:

Allow: GET, POST, HEAD

Se o servidor de back-end não enviar o cabeçalho Allow com o código de status HTTP 405 Method Not Allowed,, a Apigee retornará o código de status HTTP 502 Bad Gateway com o código do erro protocol.http.Response405WithoutAllowHeader para o aplicativo cliente. A solução recomendada para resolver esse erro é corrigir o servidor de back-end para aderir à especificação RFC 7231, seção 6.5.5: Método 405 não permitido ou usar o tratamento de falhas para responder com o código de status HTTP 405 Method Not Allowed, incluindo o cabeçalho Allow, conforme explicado no manual de solução de problemas 502 Bad Gateway without Response 405.

No entanto, em alguns casos excepcionais, pode não ser possível corrigir seu back-end ou modificar o proxy da API para resolver esse problema imediatamente.

Nesses casos, você pode definir temporariamente o cabeçalho "ignore allow" para a propriedade 405 HTTP.ignore.allow_header.for.405 no nível do processador de mensagens. Definir essa propriedade como true impede que a Apigee retorne a resposta 502 Bad Gateway para os aplicativos clientes, mesmo que o servidor de back-end envie o código de status HTTP 405 Method Not Allowed sem o cabeçalho Allow.

Quando você puder corrigir seu servidor de back-end para enviar o código de status HTTP 405 Method Not Allowed com o cabeçalho Allow, será possível reverter a propriedade HTTP.ignore.allow_header.for.405 para o valor padrão false.

Antes de começar

Antes de seguir as etapas deste documento, é importante entender os seguintes tópicos:

Como configurar o cabeçalho "ignorar permitir" da propriedade 405 como "true" nos processadores de mensagens

No Apigee Edge, a propriedade HTTP.ignore.allow_header.for.405 está definida como false, por padrão. Isso permite que o Apigee Edge retorne o 502 Bad Gateway com o código de erro protocol.http.Response405WithoutAllowHeader aos aplicativos clientes se o servidor de back-end enviar o código de status HTTP 405 Method Not Allowed sem o cabeçalho Allow. Se você quiser impedir que o Apigee Edge envie 502 Bad Gateway para aplicativos clientes, defina o valor da propriedade HTTP.ignore.allow_header.for.405 como true nos processadores de mensagens.

Nesta seção, explicamos como configurar a propriedade HTTP.ignore.allow_header.for.405 para true nos processadores de mensagens usando o token de acordo com a sintaxe descrita em Como configurar o Edge.

  1. Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se ainda não existir, crie-o.

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

    Por exemplo, para abrir o arquivo usando vi, digite o seguinte:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Adicione uma linha no seguinte formato ao arquivo de propriedades:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Salve as mudanças.
  4. Verifique se o arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicie o processador de mensagens conforme mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Se você tiver mais de um processador de mensagens, repita as etapas acima para todos eles.

Como verificar se o cabeçalho "ignorar permitir" da propriedade 405 está definido como verdadeiro nos processadores de mensagens

Esta seção explica como verificar se a propriedade HTTP.ignore.allow_header.for.405 foi atualizada para true nos processadores de mensagens.

Mesmo que você use o token conf_http_HTTP.ignore.allow_header.for.405 para atualizar o valor da propriedade no processador de mensagens, é necessário verificar se a propriedade HTTP.ignore.allow_header.for.405 real foi definida como true.

  1. Na máquina do processador de mensagens, pesquise a propriedade HTTP.ignore.allow_header.for.405 no diretório /opt/apigee/edge-message-processor/conf e verifique se ela foi definida como true, conforme mostrado abaixo:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Se a propriedade for atualizada no processador de mensagens, o comando acima vai mostrar o valor da propriedade HTTP.ignore.allow_header.for.405 como true no arquivo http.properties, conforme mostrado abaixo:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Se o valor da propriedade HTTP.ignore.allow_header.for.405 ainda aparecer como false, verifique se você seguiu todas as etapas descritas em Como configurar o cabeçalho "ignore allow" da propriedade 405 como "true" nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas novamente corretamente.
  4. Se ainda assim não for possível modificar a propriedade HTTP.ignore.allow_header.for.405, entre em contato com o suporte do Apigee Edge.

Como configurar o cabeçalho "ignorar permitir" da propriedade 405 como "false" nos processadores de mensagens

Nesta seção, explicamos como configurar a propriedade HTTP.ignore.allow_header.for.405 para o valor padrão false no processador de mensagens usando o token de acordo com a sintaxe descrita em Como configurar o Edge.

  1. Verifique se a propriedade HTTP.ignore.allow_header.for.405 foi modificada para true. Para isso, pesquise essa propriedade no diretório /opt/apigee/edge-message-processor/conf e verifique o valor dela usando o seguinte comando:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Se a propriedade estiver definida como true no processador de mensagens, o comando acima vai mostrar o valor da propriedade HTTP.ignore.allow_header.for.405 como true no arquivo http.properties, conforme mostrado abaixo:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Se o comando acima mostrar que a propriedade HTTP.ignore.allow_header.for.405 está definida como false (valor padrão), você não precisará fazer mais nada. Ou seja, pule as etapas a seguir.
  4. Se a propriedade HTTP.ignore.allow_header.for.405 estiver definida como true, execute as etapas a seguir para reverter para o valor padrão false.
  5. Na máquina do processador de mensagens, abra o seguinte arquivo em um editor:

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

    Por exemplo, para abrir o arquivo usando vi, digite o seguinte:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Remova a seguinte linha do arquivo de propriedades:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Salve as mudanças.
  8. Verifique se o arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Reinicie o processador de mensagens conforme mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Se você tiver mais de um processador de mensagens, repita as etapas acima para todos eles.

Como verificar se o cabeçalho "ignorar permitir" da propriedade 405 está definido como falso nos processadores de mensagens

Esta seção explica como verificar se a propriedade HTTP.ignore.allow_header.for.405 foi atualizada para false nos processadores de mensagens.

Mesmo que você use o token conf_http_HTTP.ignore.allow_header.for.405 para atualizar o valor no processador de mensagens, é necessário verificar se a propriedade HTTP.ignore.allow_header.for.405 real foi definida como false.

  1. Na máquina do processador de mensagens, pesquise a propriedade HTTP.ignore.allow_header.for.405 no diretório /opt/apigee/edge-message- processor/conf e verifique se ela foi definida como false, conforme mostrado abaixo:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Se a propriedade for atualizada no processador de mensagens, o comando acima vai mostrar o valor da propriedade HTTP.ignore.allow_header.for.405 como false no arquivo http.properties, conforme mostrado abaixo:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Se o valor da propriedade HTTP.ignore.allow_header.for.405 ainda aparecer como true, verifique se você seguiu todas as etapas descritas em Como configurar o cabeçalho "ignore allow" da propriedade 405 como "false" nos processadores de mensagens corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente.
  4. Se ainda assim não for possível modificar a propriedade HTTP.ignore.allow_header.for.405, entre em contato com o suporte do Apigee Edge.