- Documentation configuration OIDC, démarrage, diagnostic - Scripts batch pour démarrage backend et client - Script shell pour configuration Keycloak frontend
85 lines
2.7 KiB
Markdown
85 lines
2.7 KiB
Markdown
# 🔍 Debug OIDC Configuration - Encryption Secret
|
|
|
|
## Problème
|
|
L'erreur `Secret key for encrypting state cookie is less than 16 characters long` persiste malgré la configuration.
|
|
|
|
## Solutions à essayer
|
|
|
|
### 1. Nettoyer le cache Quarkus
|
|
```bash
|
|
cd lions-user-manager-client-quarkus-primefaces-freya
|
|
mvn clean
|
|
rm -rf target/
|
|
mvn quarkus:dev
|
|
```
|
|
|
|
### 2. Vérifier que la propriété est chargée
|
|
Ajouter dans `application-dev.properties` :
|
|
```properties
|
|
# Debug: Vérifier que la propriété est chargée
|
|
quarkus.log.category."io.quarkus.oidc".level=DEBUG
|
|
```
|
|
|
|
### 3. Utiliser une variable d'environnement
|
|
Au lieu de mettre la valeur directement dans le fichier, utiliser une variable :
|
|
```properties
|
|
quarkus.oidc.token-state-manager.encryption-secret=${OIDC_ENCRYPTION_SECRET:NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO}
|
|
```
|
|
|
|
Puis définir la variable d'environnement :
|
|
```bash
|
|
export OIDC_ENCRYPTION_SECRET=NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
|
|
```
|
|
|
|
### 4. Vérifier l'ordre de chargement
|
|
Quarkus charge les fichiers dans cet ordre :
|
|
1. `application.properties`
|
|
2. `application-{profile}.properties` (ex: `application-dev.properties`)
|
|
3. Variables d'environnement
|
|
4. Propriétés système
|
|
|
|
Si la propriété est définie dans `application.properties` avec `%dev.` ET dans `application-dev.properties` sans préfixe, celle de `application-dev.properties` devrait prendre le dessus.
|
|
|
|
### 5. Vérifier le format de la valeur
|
|
Assurez-vous qu'il n'y a pas d'espaces ou de caractères invisibles :
|
|
```properties
|
|
# ❌ MAUVAIS (espaces)
|
|
quarkus.oidc.token-state-manager.encryption-secret= NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
|
|
|
|
# ✅ BON
|
|
quarkus.oidc.token-state-manager.encryption-secret=NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
|
|
```
|
|
|
|
### 6. Vérifier la longueur de la valeur
|
|
La valeur `NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO` fait **32 caractères**, ce qui est suffisant.
|
|
|
|
### 7. Solution de contournement temporaire
|
|
Si le problème persiste, désactiver temporairement le token state manager :
|
|
```properties
|
|
quarkus.oidc.token-state-manager.enabled=false
|
|
```
|
|
|
|
**⚠️ ATTENTION** : Cette solution désactive le chiffrement des cookies d'état, ce qui peut être un problème de sécurité en production.
|
|
|
|
## Configuration actuelle
|
|
|
|
### application.properties (ligne 81)
|
|
```properties
|
|
%dev.quarkus.oidc.token-state-manager.encryption-secret=NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
|
|
```
|
|
|
|
### application-dev.properties (ligne 36)
|
|
```properties
|
|
quarkus.oidc.token-state-manager.encryption-secret=NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
|
|
```
|
|
|
|
## Vérification
|
|
|
|
Pour vérifier que la propriété est bien chargée, ajouter ce log au démarrage :
|
|
```properties
|
|
quarkus.log.category."io.quarkus.oidc.runtime".level=TRACE
|
|
```
|
|
|
|
Les logs devraient montrer la valeur chargée.
|
|
|