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

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Na comunicação cliente-servidor, um servidor responde 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 for indisponível para o recurso de destino. Da mesma forma, no 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 405 Method Not Allowed respostas com a lista de métodos permitidos no cabeçalho Allow, conforme a especificação RFC 7231, seção 6.5.5: 405 Method Not Allowed.

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, você precisará garantir que o cabeçalho Allow os contenha 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, o Apigee vai retornar o código de status HTTP 502 Bad Gateway com o código de 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: 405 Method Not Allowed ou usar o tratamento de falhas para responder com o código de status HTTP 405 Method Not Allowed incluindo o Allow cabeçalho, conforme explicado no manual de solução de problemas 502 Bad Gateway - Response 405 without Allow header (link em inglês).

No entanto, em alguns casos excepcionais, talvez não seja possível corrigir o back-end ou modificar o proxy de API para resolver esse problema imediatamente.

Nesses casos, você pode definir o cabeçalho de permissão de ignorar para a propriedade 405 HTTP.ignore.allow_header.for.405 no nível do Processador de Mensagens temporariamente. Definir essa propriedade como true impede que o Apigee retorne a resposta 502 Bad Gateway aos aplicativos cliente, 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 o servidor de back-end para enviar o código de status HTTP 405 Method Not Allowed com o cabeçalho Allow, poderá reverter a propriedade HTTP.ignore.allow_header.for.405 para o valor padrão false.

Antes de começar

Antes de usar as etapas neste documento, entenda os seguintes tópicos:

Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "true" nos processadores de mensagens

No Apigee Edge, a propriedade HTTP.ignore.allow_header.for.405 é 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 para os aplicativos cliente 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 cliente, defina o valor da propriedade HTTP.ignore.allow_header.for.405 como true nos processadores de mensagens.

Esta seção explica 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 ele ainda não já existir, crie-o.

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

    Por exemplo, para abrir o arquivo usando vi, insira 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 alterações.
  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 em todos os processadores de mensagens.

Como verificar se o cabeçalho de permissão de ignorar para a propriedade 405 está definido como "true" 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 real HTTP.ignore.allow_header.for.405 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 com sucesso no processador de mensagens, o comando acima deve 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 você ainda vir o valor da propriedade HTTP.ignore.allow_header.for.405 como false verifique se seguiu todas as etapas descritas em Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "true" nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas novamente corretamente.
  4. Se você ainda não conseguir modificar a propriedade HTTP.ignore.allow_header.for.405, entre em contato com o suporte do Apigee Edge.

Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "false" nos processadores de mensagens

Esta seção explica 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 fazer 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), não é necessário fazer mais nada. Ou seja, pule as etapas a seguir.
  4. Se a propriedade HTTP.ignore.allow_header.for.405 estiver definida como true, siga as etapas abaixo para reverter ao valor padrão false.
  5. Na máquina do processador de mensagens, abra o arquivo a seguir em um editor:

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

    Por exemplo, para abrir o arquivo usando vi, insira 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 alterações.
  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 em todos os processadores de mensagens.

Como verificar se o cabeçalho de permissão de ignorar para a propriedade 405 está definido como "false" 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 real HTTP.ignore.allow_header.for.405 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 com sucesso no processador de mensagens, o comando acima deve 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 você ainda vir o valor da propriedade HTTP.ignore.allow_header.for.405 como true, verifique se seguiu todas as etapas descritas em Como configurar o cabeçalho de permissão de ignorar para a propriedade 405 como "false" nos processadores de mensagens corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente.
  4. Se você ainda não conseguir modificar a propriedade HTTP.ignore.allow_header.for.405, entre em contato com o suporte do Apigee Edge.