This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/CONFIGURATION_GUIDE.md

8.4 KiB
Raw Permalink Blame History

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=true
    • quarkus.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 DEV
  • test-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