Configura el encabezado de omisión de omisión para la propiedad 405 en los procesadores de mensajes

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

En la comunicación cliente-servidor, un servidor responde con el código de estado HTTP 405 Method Not Allowed si el método de solicitud HTTP que presenta el cliente es conocido por el servidor, pero no es compatible con el recurso de destino. Del mismo modo, en Apigee Edge, el servidor de backend puede responder con el código de estado HTTP 405 Method Not Allowed.

Apigee Edge espera que el servidor de backend envíe respuestas 405 Method Not Allowed con la lista de métodos permitidos en el encabezado Allow, según la especificación RFC 7231, sección 6.5.5: 405 Método no permitido.

El encabezado Allow se debe enviar en el siguiente formato:

Allow: HTTP_METHODS

Por ejemplo, si tu servidor de backend permite los métodos GET, POST y HEAD, debes asegurarte de que el encabezado Allow los contenga de la siguiente manera:

Allow: GET, POST, HEAD

Si el servidor de backend no envía el encabezado Allow con el código de estado HTTP 405 Method Not Allowed, Apigee muestra el código de estado HTTP 502 Bad Gateway con el código de error protocol.http.Response405WithoutAllowHeader a la aplicación cliente. La solución recomendada para abordar este error es corregir el servidor de backend para que cumpla con la especificación RFC 7231, sección 6.5.5: 405 Método no permitido o usar el manejo de fallas para responder con el código de estado HTTP 405 Method Not Allowed incluido el Allow encabezado como se explica en la guía de solución de problemas 502 Bad Gateway - Response 405 without Allow header.

Sin embargo, en algunos casos excepcionales, es posible que no puedas corregir tu backend o modificar tu proxy de API para abordar este problema de inmediato.

En esos casos, puedes configurar el encabezado de permiso de omisión para la 405 propiedad HTTP.ignore.allow_header.for.405 a nivel del Message Processor de forma temporal. Si configuras esta propiedad como true, se evita que Apigee muestre la respuesta 502 Bad Gateway a las aplicaciones cliente, incluso si el servidor de backend envía el código de estado HTTP 405 Method Not Allowed sin el encabezado Allow.

Una vez que puedas corregir tu servidor de backend para enviar el código de estado HTTP 405 Method Not Allowed con el encabezado Allow, puedes revertir la propiedad HTTP.ignore.allow_header.for.405 a su valor predeterminado false.

Antes de comenzar

Antes de usar los pasos de este documento, asegúrate de comprender los siguientes temas:

Configura el encabezado de permiso de omisión para la propiedad 405 como true en Message Processors

En Apigee Edge, la propiedad HTTP.ignore.allow_header.for.405 se establece en false de forma predeterminada. Esto permite que Apigee Edge muestre 502 Bad Gateway con el código de error protocol.http.Response405WithoutAllowHeader a las aplicaciones cliente si el servidor de backend envía el código de estado HTTP 405 Method Not Allowed sin el encabezado Allow. Si deseas evitar que Apigee Edge envíe 502 Bad Gateway a las aplicaciones cliente, debes establecer el valor de la propiedad HTTP.ignore.allow_header.for.405 como true en los Message Processors.

En esta sección, se explica cómo configurar la propiedad HTTP.ignore.allow_header.for.405 como true en los Message Processors, con el token según la sintaxis que se describe en Cómo configurar Edge.

  1. En la máquina de Message Processor, abre el siguiente archivo en un editor. Si aún no existe, créalo.

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

    Por ejemplo, para abrir el archivo con vi, ingresa lo siguiente:

    vi /opt/apigee/customer/application/message-processor.properties
  2. Agrega una línea en el siguiente formato al archivo de propiedades:
    conf_http_HTTP.ignore.allow_header.for.405=true
  3. Guarda los cambios.
  4. Asegúrate de que el archivo de propiedades sea propiedad del usuario apigee, como se muestra a continuación:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicia el Message Processor como se muestra a continuación:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.

Verifica que el encabezado de permiso de omisión para la propiedad 405 esté configurado como true en Message Processors

En esta sección, se explica cómo verificar que la propiedad HTTP.ignore.allow_header.for.405 se haya actualizado correctamente a true en los Message Processors.

Aunque uses el token conf_http_HTTP.ignore.allow_header.for.405 para actualizar el valor de la propiedad en el Message Processor, debes verificar si la propiedad real HTTP.ignore.allow_header.for.405 se estableció como true.

  1. En la máquina de Message Processor, busca la propiedad HTTP.ignore.allow_header.for.405 en el directorio /opt/apigee/edge-message-processor/conf y verifica si se estableció como true como se muestra a continuación:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Si la propiedad se actualiza correctamente en el Message Processor, el comando anterior debería mostrar el valor de la propiedad HTTP.ignore.allow_header.for.405 como true en el archivo http.properties, como se muestra a continuación:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. Si aún ves el valor de la propiedad HTTP.ignore.allow_header.for.405 como false verifica que hayas seguido correctamente todos los pasos descritos en Configura el encabezado de permiso de omisión para la propiedad 405 como true en Message Processors. Si omitiste algún paso, repite todos los pasos correctamente correctamente.
  4. Si aún no puedes modificar la propiedad HTTP.ignore.allow_header.for.405, comunícate con el equipo de asistencia de Apigee Edge.

Configura el encabezado de permiso de omisión para la propiedad 405 como false en Message Processors

En esta sección, se explica cómo configurar la propiedad HTTP.ignore.allow_header.for.405 en su valor predeterminado false en el Message Processor, con el token según la sintaxis que se describe en Cómo configurar Edge.

  1. Verifica si la propiedad HTTP.ignore.allow_header.for.405 se modificó a true. Para ello, busca esta propiedad en el /opt/apigee/edge-message-processor/conf directory y verifica su valor con el siguiente comando:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Si la propiedad se establece como true en el Message Processor, el comando anterior debería mostrar el valor de la propiedad HTTP.ignore.allow_header.for.405 como true en el archivo http.properties como se muestra a continuación:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. Si el comando anterior muestra que la propiedad HTTP.ignore.allow_header.for.405 se establece como false (valor predeterminado), no tienes que hacer nada más. Es decir, omite los siguientes pasos.
  4. Si la propiedad HTTP.ignore.allow_header.for.405 se establece como true, sigue los siguientes pasos para volver a su valor predeterminado false.
  5. En la máquina de Message Processor, abre el siguiente archivo en un editor:

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

    Por ejemplo, para abrir el archivo con vi, ingresa lo siguiente:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Quita la siguiente línea del archivo de propiedades:
    conf_http_HTTP.ignore.allow_header.for.405=true
  7. Guarda los cambios.
  8. Asegúrate de que el archivo de propiedades sea propiedad del usuario apigee, como se muestra a continuación:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Reinicia el Message Processor como se muestra a continuación:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Si tienes más de un Message Processor, repite los pasos anteriores en todos los Message Processors.

Verifica que el encabezado de permiso de omisión para la propiedad 405 esté configurado como false en Message Processors

En esta sección, se explica cómo verificar que la propiedad HTTP.ignore.allow_header.for.405 se haya actualizado correctamente a false en los Message Processors.

Aunque uses el token conf_http_HTTP.ignore.allow_header.for.405 para actualizar el valor en el Message Processor, debes verificar si la propiedad real HTTP.ignore.allow_header.for.405 se estableció como false.

  1. En la máquina de Message Processor, busca la propiedad HTTP.ignore.allow_header.for.405 en el /opt/apigee/edge-message- processor/conf directorio y verifica si se estableció como false como se muestra a continuación:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Si la propiedad se actualiza correctamente en el Message Processor, el comando anterior debería mostrar el valor de la propiedad HTTP.ignore.allow_header.for.405 como false en el archivo http.properties, como se muestra a continuación:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
  3. Si aún ves el valor de la propiedad HTTP.ignore.allow_header.for.405 como true, verifica que hayas seguido correctamente todos los pasos descritos en Configura el encabezado de permiso de omisión para la propiedad 405 como false en Message Processors. Si omitiste algún paso, repite todos los pasos correctamente.
  4. Si aún no puedes modificar la propiedad HTTP.ignore.allow_header.for.405, comunícate con el equipo de asistencia de Apigee Edge.