- Documentation configuration OIDC, démarrage, diagnostic - Scripts batch pour démarrage backend et client - Script shell pour configuration Keycloak frontend
2.7 KiB
🔍 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
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 :
# 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 :
quarkus.oidc.token-state-manager.encryption-secret=${OIDC_ENCRYPTION_SECRET:NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO}
Puis définir la variable d'environnement :
export OIDC_ENCRYPTION_SECRET=NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
4. Vérifier l'ordre de chargement
Quarkus charge les fichiers dans cet ordre :
application.propertiesapplication-{profile}.properties(ex:application-dev.properties)- Variables d'environnement
- 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 :
# ❌ 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 :
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)
%dev.quarkus.oidc.token-state-manager.encryption-secret=NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO
application-dev.properties (ligne 36)
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 :
quarkus.log.category."io.quarkus.oidc.runtime".level=TRACE
Les logs devraient montrer la valeur chargée.