<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Dans la communication client-serveur, un serveur répond avec le code d'état HTTP 405
Method Not Allowed
si le
<ph type="x-smartling-placeholder"></ph>
La méthode de requête HTTP présentée par le client est connue du serveur
mais pas avec la ressource cible. De même dans Apigee Edge, le serveur backend peut
répondre avec le code d'état HTTP 405 Method Not Allowed.
Apigee Edge s'attend à ce que le serveur backend envoie des réponses 405 Method Not Allowed
par la liste des méthodes autorisées dans l'en-tête Allow
, conformément à la spécification
<ph type="x-smartling-placeholder"></ph>
RFC 7231, section 6.5.5: Méthode 405 non autorisée.
L'en-tête Allow
doit être envoyé au format suivant:
Allow: HTTP_METHODS
Par exemple, si votre serveur backend autorise GET
, POST
et
HEAD
, vous devez vous assurer qu'elles sont contenues dans l'en-tête Allow
comme suit:
Allow: GET, POST, HEAD
Si le serveur backend n'envoie pas l'en-tête Allow
avec le code d'état HTTP
405 Method Not Allowed,
, puis Apigee renvoie le code d'état HTTP 502 Bad
Gateway
avec le code d'erreur protocol.http.Response405WithoutAllowHeader
au
l'application cliente. La solution recommandée pour résoudre cette erreur est la suivante :
pour corriger la spécification
<ph type="x-smartling-placeholder"></ph>
RFC 7231, section 6.5.5: 405 Method Not Allowed ou d'utiliser la gestion des pannes pour
répondre avec le code d'état HTTP 405 Method Not Allowed
, en incluant le
en-tête Allow
comme expliqué dans le playbook de dépannage
.
502 Bad Gateway - Response 405 without Allow header.
Toutefois, dans certains cas exceptionnels, il n'est pas toujours possible de réparer votre backend ou de modifier votre pour résoudre ce problème immédiatement.
Dans ce cas, vous pouvez définir l'en-tête "Ignorer l'autorisation" pour la propriété 405
.
HTTP.ignore.allow_header.for.405
au
Niveau du processeur de messages temporairement. Définir cette propriété sur true
empêche Apigee
de renvoyer la réponse 502 Bad Gateway
aux applications clientes, même si
le serveur backend envoie le code d'état HTTP 405 Method Not Allowed
sans le
Allow
.
Une fois que vous êtes en mesure de faire en sorte que votre serveur backend envoie le code d'état HTTP 405 Method
Not Allowed
avec l'en-tête Allow
, vous pouvez rétablir la propriété.
HTTP.ignore.allow_header.for.405
sur sa valeur par défaut false
.
Avant de commencer
Avant de suivre les étapes décrites dans ce document, assurez-vous de bien comprendre les points suivants:
- Lire le guide – <ph type="x-smartling-placeholder"></ph> 502 Bad Gateway - Response 405 without Allow header.
- Si vous ne savez pas comment configurer des propriétés pour Edge sur Private Cloud, consultez Comment configurer Edge.
Définir l'en-tête "Ignore allow" de la propriété 405 sur "true" sur les processeurs de messages
Dans Apigee Edge, la propriété HTTP.ignore.allow_header.for.405
est définie sur
false
par défaut. Cela permet à Apigee Edge de renvoyer le 502 Bad
Gateway
avec le code d'erreur protocol.http.Response405WithoutAllowHeader
au
applications clientes si le serveur backend envoie le code d'état HTTP 405 Method Not
Allowed
sans l'en-tête Allow
. Si vous souhaitez empêcher Apigee Edge de
en envoyant 502 Bad Gateway
aux applications clientes, vous devez définir la valeur de
la propriété HTTP.ignore.allow_header.for.405
sur true
dans l'objet
Processeurs.
Cette section explique comment configurer la propriété.
HTTP.ignore.allow_header.for.405
à true
le
les processeurs de messages, en utilisant le jeton conformément à la syntaxe décrite dans la section
<ph type="x-smartling-placeholder"></ph>
Comment configurer Edge
-
Sur le processeur de messages, ouvrez le fichier suivant dans un éditeur. Si ce n'est pas le cas existent déjà, alors créez-les.
/opt/apigee/customer/application/message-processor.properties
Par exemple, pour ouvrir le fichier avec vi, saisissez la commande suivante:
vi /opt/apigee/customer/application/message-processor.properties
- Ajoutez une ligne au format suivant au fichier de propriétés:
conf_http_HTTP.ignore.allow_header.for.405=true
- Enregistrez les modifications.
- Assurez-vous que le fichier de propriétés appartient à l'utilisateur
apigee
, comme indiqué ci-dessous:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Redémarrez le processeur de messages comme indiqué ci-dessous:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Si vous disposez de plusieurs processeurs de messages, répétez les étapes ci-dessus sur tous les messages Processeurs.
Vérifier que l'en-tête "allow" à ignorer pour la propriété 405 est défini sur "true" sur les processeurs de messages
Cette section explique comment vérifier que la propriété
HTTP.ignore.allow_header.for.405
a bien été remplacé par true
sur les processeurs de messages.
Même si vous utilisez le jeton conf_http_HTTP.ignore.allow_header.for.405
pour mettre à jour
la valeur de la propriété sur le processeur de messages, vous devez vérifier si la propriété réelle
HTTP.ignore.allow_header.for.405
a été défini sur true
.
- Sur le processeur de messages, recherchez la propriété
HTTP.ignore.allow_header.for.405
dans la/opt/apigee/edge-message-processor/conf
et vérifiez s'il a été défini surtrue
, comme indiqué ci-dessous:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propriété est correctement mise à jour sur le processeur de messages, la commande ci-dessus
doit afficher la valeur de la propriété
HTTP.ignore.allow_header.for.405
comme suit :true
dans le fichierhttp.properties
, comme indiqué ci-dessous:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Si la valeur de la propriété
HTTP.ignore.allow_header.for.405
s'affiche toujours sous la formefalse
, puis vérifiez que vous avez suivi toutes les étapes décrites dans Configurer l'option "Ignorer l'en-tête d'autorisation" pour la propriété 405 sur "true" dans correctement les processeurs de messages. Si vous avez manqué une étape, répétez toutes les étapes correctement. - Si vous ne parvenez toujours pas à modifier la propriété
HTTP.ignore.allow_header.for.405
, puis contactez l'assistance Apigee Edge.
Configuration sur "false" de l'en-tête "Ignore allow" de la propriété 405 sur les processeurs de messages
Cette section explique comment configurer la propriété.
Valeur par défaut de HTTP.ignore.allow_header.for.405
false
sur le processeur de messages, en utilisant le jeton conformément à la syntaxe décrite dans
Comment configurer Edge.
- Vérifiez si la propriété
HTTP.ignore.allow_header.for.405
est remplacée partrue
Pour ce faire, recherchez cette propriété dans le répertoire/opt/apigee/edge-message-processor/conf
et en vérifiant à l'aide de la commande suivante:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propriété est définie sur
true
sur le processeur de messages, la commande ci-dessus doit afficher la valeur de la propriétéHTTP.ignore.allow_header.for.405
comme suit :true
dans le fichierhttp.properties
, comme indiqué ci-dessous:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Si la commande ci-dessus indique que la propriété
HTTP.ignore.allow_header.for.405
est définie surfalse
(valeur par défaut), vous n'avez rien d'autre à faire. En d'autres termes, ignorer les étapes suivantes. - Si la propriété
HTTP.ignore.allow_header.for.405
est définie surtrue
, Ensuite, procédez comme suit pour rétablir la valeur par défautfalse
. Sur le processeur de messages, ouvrez le fichier suivant dans un éditeur:
/opt/apigee/customer/application/message-processor.properties
Par exemple, pour ouvrir le fichier avec vi, saisissez la commande suivante:
vi /opt/apigee/customer/application/message-processor.properties
- Supprimez la ligne suivante du fichier de propriétés:
conf_http_HTTP.ignore.allow_header.for.405=true
- Enregistrez les modifications.
- Assurez-vous que le fichier de propriétés appartient à l'utilisateur
apigee
, comme indiqué ci-dessous:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Redémarrez le processeur de messages comme indiqué ci-dessous:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Si vous disposez de plusieurs processeurs de messages, répétez les étapes ci-dessus sur tous les messages Processeurs.
Vérifier que l'en-tête d'autorisation à ignorer pour la propriété 405 est défini sur "false" sur les processeurs de messages
Cette section explique comment vérifier que la propriété
HTTP.ignore.allow_header.for.405
a bien été remplacé par false
sur les processeurs de messages.
Même si vous utilisez le jeton
conf_http_HTTP.ignore.allow_header.for.405
pour modifier la valeur du message
Sous-traitant, vous devez vérifier si la propriété réelle HTTP.ignore.allow_header.for.405
a été défini sur false
.
- Sur le processeur de messages, recherchez la propriété
HTTP.ignore.allow_header.for.405
dans le répertoire/opt/apigee/edge-message- processor/conf
et vérifiez s'il a été défini surfalse
, comme indiqué. ci-dessous:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Si la propriété est correctement mise à jour sur le processeur de messages, la commande ci-dessus
doit afficher la valeur de la propriété
HTTP.ignore.allow_header.for.405
comme suit :false
dans le fichierhttp.properties
, comme indiqué ci-dessous:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Si la valeur de la propriété
HTTP.ignore.allow_header.for.405
s'affiche toujours sous la formetrue
, puis vérifiez que vous avez suivi toutes les étapes décrites dans <ph type="x-smartling-placeholder"></ph> Configuration sur "false" de l'en-tête "Ignore allow" de la propriété 405 sur les processeurs de messages correctement. Si vous avez manqué une étape, répétez toutes les étapes correctement. - Si vous ne parvenez toujours pas à modifier la propriété
HTTP.ignore.allow_header.for.405
, puis contactez l'assistance Apigee Edge.