# 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 ```properties quarkus.http.max-headers-size=64K quarkus.vertx.max-headers-size=64K ``` ### 2. Optimisation OIDC Token Management ```properties 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 : 1. **Ouvrir les outils développeur** (F12) 2. **Onglet Application > Cookies** 3. **Supprimer tous les cookies** pour `http://localhost:8081` 4. **Redémarrer l'application Quarkus** 5. **Recharger la page** Ou via la console du navigateur : ```javascript // 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 : ```bash # 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 : 1. Accédez à http://localhost:8081/dashboard.xhtml 2. Vous serez redirigé vers Keycloak pour l'authentification 3. Après authentification, les nouveaux cookies (optimisés) seront créés ## Si le problème persiste 1. **Augmenter encore la limite** : ```properties quarkus.http.max-headers-size=128K quarkus.vertx.max-headers-size=128K ``` 2. **Vérifier dans Keycloak** que le client `btpxpress-frontend` n'a pas trop de claims/roles qui gonflent le token 3. **Mode navigation privée** : Tester dans une fenêtre de navigation privée pour éviter les cookies existants