8.4 KiB
Guide de Configuration - Lions User Manager
📋 Structure des fichiers de configuration
Les fichiers de configuration ont été restructurés selon les best practices Quarkus :
lions-user-manager/
├── lions-user-manager-client-quarkus-primefaces-freya/
│ └── src/main/resources/
│ ├── application.properties # Configuration commune
│ ├── application-dev.properties # Configuration DEV
│ └── application-prod.properties # Configuration PROD
│
├── lions-user-manager-server-impl-quarkus/
│ └── src/main/resources/
│ ├── application.properties # Configuration commune
│ ├── application-dev.properties # Configuration DEV
│ └── application-prod.properties # Configuration PROD
│
└── lions-user-manager-server-api/
└── (pas de configuration - module DTOs uniquement)
🎯 Principe de séparation
✅ Avant (ancien système avec préfixes)
# application.properties
quarkus.http.port=8080
%dev.quarkus.http.port=8082
%prod.quarkus.http.port=8080
✅ Après (nouveau système avec fichiers séparés)
application.properties (commun)
quarkus.http.host=0.0.0.0
application-dev.properties
quarkus.http.port=8082
application-prod.properties
quarkus.http.port=8080
📁 Détail des configurations
1️⃣ lions-user-manager-client-quarkus-primefaces-freya
application.properties - Configuration commune
Contient :
- Configuration HTTP de base (host, session, cookies)
- Configuration MyFaces (JSF)
- Configuration PrimeFaces (thème, options)
- Configuration REST Client (timeouts, scope)
- Configuration OIDC de base (redirect path, scopes, rôles)
- Chemins publics/protégés
- Health checks et Metrics
application-dev.properties - Développement
Contient :
- Port :
8082 - Debug port :
5006 - Logging : DEBUG/TRACE
- OIDC : Keycloak local
http://localhost:8180/realms/lions-user-manager - Backend URL :
http://localhost:8081 - CORS : Permissif (
localhost:8080,8081,8082) - Cookies : Non sécurisés (HTTP autorisé)
application-prod.properties - Production
Contient :
- Port :
8080 - Logging : WARN/INFO
- OIDC : Keycloak production
https://security.lions.dev/realms/master - Backend URL : Variable d'environnement
${LIONS_USER_MANAGER_BACKEND_URL} - CORS : Restrictif (via
${CORS_ORIGINS}) - Cookies : Sécurisés (HTTPS uniquement)
- TLS : Vérification requise
2️⃣ lions-user-manager-server-impl-quarkus
application.properties - Configuration commune
Contient :
- Configuration HTTP de base (CORS headers, methods)
- Type d'application OIDC :
service - Configuration Keycloak Admin (pool, timeouts, retry)
- Configuration Audit
- Configuration Logging (format, rotation)
- OpenAPI/Swagger metadata
- Health checks et Metrics
- Jackson (JSON)
application-dev.properties - Développement
🔑 Point important : OIDC DÉSACTIVÉ en DEV
Contient :
- Port :
8081 - Logging : DEBUG/TRACE
- OIDC :
quarkus.oidc.enabled=false⚠️- Simplifie le développement
- Le client JSF reste sécurisé
- Commentaires fournis pour réactiver si nécessaire
- Security : Désactivée (
quarkus.security.auth.enabled=false) - Keycloak Admin : Local
http://localhost:8180/realms/lions-user-manager - CORS : Permissif (
*) - Realms autorisés :
lions-user-manager,btpxpress,master,unionflow
application-prod.properties - Production
🔐 Point important : OIDC OBLIGATOIRE en PROD
Contient :
- Port :
8080 - Logging : INFO/WARN
- OIDC :
quarkus.oidc.enabled=true✅- Vérification TLS requise
- Token validation stricte
- Extraction des rôles
- Security : Activée et stricte
quarkus.security.auth.enabled=truequarkus.security.jaxrs.deny-unannotated-endpoints=true
- Keycloak Admin : Production
https://security.lions.dev/realms/master - Database : PostgreSQL pour audit
- Swagger : Désactivé
- Performance : Thread pool optimisé (4-32 threads)
🚀 Utilisation
Démarrage en mode DEV
# Backend (port 8081, OIDC désactivé)
cd lions-user-manager/lions-user-manager-server-impl-quarkus
mvn quarkus:dev
# Client (port 8082, OIDC activé vers Keycloak local)
cd lions-user-manager/lions-user-manager-client-quarkus-primefaces-freya
mvn quarkus:dev
Accès : http://localhost:8082
Démarrage en mode PROD
# Backend
mvn clean package -Pprod
java -jar target/quarkus-app/quarkus-run.jar
# Client
mvn clean package -Pprod
java -jar target/quarkus-app/quarkus-run.jar
🔐 Architecture de sécurité
Mode DEV (simplifié)
[Navigateur] → [Client JSF:8082] → [Backend API:8081]
↓ OIDC ✗ Pas d'OIDC
[Keycloak local]
Avantages :
- ✅ Développement rapide sans configuration Keycloak backend
- ✅ Client reste sécurisé (authentification utilisateur)
- ✅ Pas de conflit de realms
Inconvénients :
- ⚠️ Backend non sécurisé (localhost uniquement)
- ⚠️ Différent de la production
Mode PROD (sécurisé)
[Navigateur] → [Client JSF:8080] → [Backend API:8080]
↓ OIDC ↓ OIDC
[Keycloak Production]
Avantages :
- ✅ Défense en profondeur (double validation)
- ✅ Traçabilité (qui a fait quoi)
- ✅ Zero-trust (backend ne fait confiance à personne)
- ✅ Best practice microservices
⚙️ Variables d'environnement requises en PROD
Client
LIONS_USER_MANAGER_BACKEND_URL=https://api.lions.dev/user-manager
KEYCLOAK_AUTH_SERVER_URL=https://security.lions.dev/realms/master
KEYCLOAK_CLIENT_ID=lions-user-manager-client
KEYCLOAK_CLIENT_SECRET=<secret-du-client>
OIDC_ENCRYPTION_SECRET=<secret-32-chars-minimum>
CORS_ORIGINS=https://lions.dev,https://app.lions.dev
Serveur
KEYCLOAK_CLIENT_SECRET=<secret-du-backend>
KEYCLOAK_ADMIN_USERNAME=admin
KEYCLOAK_ADMIN_PASSWORD=<mot-de-passe-admin>
KEYCLOAK_AUTHORIZED_REALMS=btpxpress,master,unionflow
DB_USERNAME=audit_user
DB_PASSWORD=<mot-de-passe-db>
DB_HOST=lions-db.lions.svc.cluster.local
DB_NAME=lions_audit
🔄 Réactiver OIDC en DEV (optionnel)
Si vous voulez tester le flow complet en développement :
Étape 1 : Modifier application-dev.properties du serveur
# Commenter cette ligne:
# quarkus.oidc.enabled=false
# Décommenter ces lignes:
quarkus.oidc.enabled=true
quarkus.oidc.auth-server-url=http://localhost:8180/realms/lions-user-manager
quarkus.oidc.tls.verification=none
quarkus.oidc.token.issuer=http://localhost:8180/realms/lions-user-manager
quarkus.oidc.discovery-enabled=true
quarkus.oidc.token.audience=account
quarkus.oidc.verify-access-token=true
quarkus.oidc.roles.role-claim-path=realm_access/roles
quarkus.security.auth.enabled=true
Étape 2 : Configurer Keycloak
Suivre le guide : KEYCLOAK_DEV_SETUP.md
✅ Vérification de la configuration
Compilationdes modules
# Client
cd lions-user-manager/lions-user-manager-client-quarkus-primefaces-freya
mvn compile -DskipTests
# Serveur
cd lions-user-manager/lions-user-manager-server-impl-quarkus
mvn compile -DskipTests
Test rapide
# Backend health check
curl http://localhost:8081/health
# Client (via navigateur)
http://localhost:8082
📊 Résumé des ports
| Module | DEV | PROD |
|---|---|---|
| Client | 8082 | 8080 |
| Serveur | 8081 | 8080 |
| Keycloak | 8180 | 443 |
🔧 Troubleshooting
Erreur : "Propriété non trouvée"
✅ Vérifier que le profil est correct : -Dquarkus.profile=dev ou -Pprod
Erreur : "Port already in use"
✅ Vérifier qu'un seul module tourne sur chaque port
Erreur HTTP 405 en DEV
✅ Vérifier que OIDC est désactivé sur le backend DEV
Erreur 401 en PROD
✅ Vérifier que les secrets Keycloak sont corrects ✅ Vérifier que les realms correspondent (client et serveur)
📖 Documentation complémentaire
KEYCLOAK_DEV_SETUP.md- Configuration Keycloak pour DEVtest-keycloak-config.sh- Script de vérification (Linux/Mac)test-keycloak-config.ps1- Script de vérification (Windows)
Dernière mise à jour : 2025-12-25 Version : 1.0.0