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

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

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 presentó el cliente es conocido por el servidor, pero el recurso de destino no lo admite. De manera similar, 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 debe enviarse 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 a fin de que cumpla con la especificación RFC 7231, sección 6.5.5: Método no permitido 405, o bien usar el manejo de fallas para responder con el código de estado HTTP 405 Method Not Allowed, incluido el encabezado Allow como se explica en la guía de solución de problemas 502 en la guía de solución de problemas sin permiso.

Sin embargo, en algunos casos excepcionales, es posible que no sea posible corregir tu backend ni modificar el proxy de API para solucionar este problema de inmediato.

En esos casos, puedes configurar, de manera temporal, el encabezado de permisos de omisión para la propiedad HTTP.ignore.allow_header.for.405 de 405 a nivel del procesador de mensajes. Configurar esta propiedad como true 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 estés en posición de corregir tu servidor de backend para que envíe 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 seguir los pasos de este documento, asegúrate de comprender los siguientes temas:

Configura el encabezado de omisión de la solicitud de permiso para la propiedad 405 como verdadero en Message Processor

En Apigee Edge, la propiedad HTTP.ignore.allow_header.for.405 se establece en false de forma predeterminada. Esto permite que Apigee Edge muestre el 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 aplicaciones cliente, debes establecer el valor de la propiedad HTTP.ignore.allow_header.for.405 en true en Message Processor.

En esta sección, se explica cómo configurar la propiedad HTTP.ignore.allow_header.for.405 en true en Message Processors, mediante el token según la sintaxis descrita 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 con 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 de apigee, como se muestra a continuación:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicia 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 ellos.

Verifica que el encabezado de omisión de permisos para la propiedad 405 esté configurado como verdadero en Message Processor

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 Message Processor.

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

  1. En la máquina del procesador de mensajes, busca la propiedad HTTP.ignore.allow_header.for.405 en el directorio /opt/apigee/edge-message-processor/conf y verifica si se configuró 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 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 si seguiste todos los pasos descritos en Configura correctamente el encabezado para ignorar la opción en la propiedad 405 en Message Processor. Si omitiste algún paso, repite todos los pasos de nuevo de forma correcta.
  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.

Configuración del encabezado de omisión de permiso para la propiedad 405 como falso en Message Processor

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 mediante el uso del token según la sintaxis descrita 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 directorio /opt/apigee/edge-message-processor/conf 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 está configurada como true en 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 está configurada 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 está configurada como true, realiza 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 de apigee, como se muestra a continuación:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Reinicia 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 ellos.

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

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 Message Processor.

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

  1. En la máquina del procesador de mensajes, busca la propiedad HTTP.ignore.allow_header.for.405 en el directorio /opt/apigee/edge-message- processor/conf y verifica si se configuró 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 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 omisión de la propiedad 405 como falso en Message Processor. 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.