2.6 KiB
2.6 KiB
Solution pour l'erreur HTTP 431 "Request Header Fields Too Large"
Problème
L'erreur 431 se produit lorsque les en-têtes HTTP (notamment les cookies contenant les tokens OIDC/JWT) dépassent la taille maximale autorisée.
Solutions appliquées
1. Configuration Quarkus HTTP
quarkus.http.max-headers-size=64K
quarkus.vertx.max-headers-size=64K
2. Optimisation OIDC Token Management
quarkus.oidc.token-state-manager.split-tokens=true
quarkus.oidc.token-state-manager.strategy=id-refresh-tokens
quarkus.oidc.token-state-manager.encryption-required=false
quarkus.oidc.token-state-manager.cookie-max-size=8192
Ces configurations :
- split-tokens : Divise les tokens en plusieurs cookies pour éviter qu'un seul cookie soit trop volumineux
- id-refresh-tokens : Utilise une stratégie optimisée avec refresh tokens
- encryption-required=false : Désactive l'encryption pour réduire la taille (développement uniquement)
- cookie-max-size=8192 : Limite la taille d'un cookie individuel à 8KB
Actions à effectuer
⚠️ IMPORTANT : Supprimer les cookies du navigateur
Les cookies existants peuvent être trop volumineux. Vous devez :
- Ouvrir les outils développeur (F12)
- Onglet Application > Cookies
- Supprimer tous les cookies pour
http://localhost:8081 - Redémarrer l'application Quarkus
- Recharger la page
Ou via la console du navigateur :
// Supprimer tous les cookies pour localhost:8081
document.cookie.split(";").forEach(c => {
document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/");
});
Redémarrer l'application
Après modification de application.properties, vous devez redémarrer l'application Quarkus :
# Arrêter l'application (Ctrl+C)
# Puis relancer
mvn quarkus:dev
Vérification
Une fois les cookies supprimés et l'application redémarrée :
- Accédez à http://localhost:8081/dashboard.xhtml
- Vous serez redirigé vers Keycloak pour l'authentification
- Après authentification, les nouveaux cookies (optimisés) seront créés
Si le problème persiste
-
Augmenter encore la limite :
quarkus.http.max-headers-size=128K quarkus.vertx.max-headers-size=128K -
Vérifier dans Keycloak que le client
btpxpress-frontendn'a pas trop de claims/roles qui gonflent le token -
Mode navigation privée : Tester dans une fenêtre de navigation privée pour éviter les cookies existants