chore(quarkus-327): bump to Quarkus 3.27.3 LTS, rename deprecated config keys
This commit is contained in:
150
FIX_431_ERROR.md
150
FIX_431_ERROR.md
@@ -1,75 +1,75 @@
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user