Migration du frontend React/Next.js vers Quarkus + PrimeFaces Freya 5.0.0 Dashboard: - Extension de BtpXpressApiClient avec tous les endpoints dashboard - Création de DashboardService pour récupérer les données API - Refactorisation DashboardView : uniquement données réelles de l'API - Restructuration dashboard.xhtml avec tous les aspects métiers BTP - Suppression complète de toutes les données fictives Topbar: - Amélioration du menu profil utilisateur avec header professionnel - Ajout UserSessionBean pour gérer les informations utilisateur - Styles CSS personnalisés pour une disposition raffinée - Badges de notifications conditionnels Configuration: - Intégration du thème Freya 5.0.0-jakarta - Configuration OIDC pour Keycloak (security.lions.dev) - Gestion des erreurs HTTP 431 (headers size) - Support du format Fcfa avec séparateurs d'espaces Converters: - Création de FcfaConverter pour formater les montants en Fcfa avec espaces (x xxx xxx format) Code Quality: - Code entièrement documenté en français avec Javadoc exemplaire - Respect du principe Java 'Write once, use many times' - Logging complet pour le débogage - Gestion d'erreurs robuste
2.9 KiB
2.9 KiB
Configuration BTP Xpress Client - PrimeFaces Freya
✅ Vérifications effectuées
1. Structure du projet
- ✅ Fichiers XHTML dans
src/main/resources/META-INF/resources/ - ✅ Configuration dans
src/main/resources/META-INF/web.xml - ✅ Beans CDI dans
src/main/java/dev/lions/btpxpress/
2. Configuration OIDC / Keycloak
- ✅ Serveur Keycloak :
https://security.lions.dev/realms/btpxpress - ✅ Client ID :
btpxpress-frontend - ✅ Type d'application :
web-app - ✅ Redirection :
/(restauration du chemin après authentification) - ✅ Cookies : Configurés pour la session
- ✅ TLS :
required(production)
3. Communication avec le backend
- ✅ URL Backend :
http://localhost:8080 - ✅ Endpoints API :
/api/v1/* - ✅ REST Client :
BtpXpressApiClientconfiguré - ✅ Service :
ChantierServicecréé pour encapsuler les appels API - ✅ CORS Backend :
http://localhost:8081ajouté aux origines autorisées
4. Configuration serveur backend
- ✅ Port :
8080 - ✅ CORS Origins :
http://localhost:3000,http://localhost:5173,http://localhost:8081 - ✅ JWT Validation :
https://security.lions.dev/realms/btpxpress/protocol/openid-connect/certs - ✅ Issuer :
https://security.lions.dev/realms/btpxpress
📋 Mapping Client ↔ Serveur
| Client (PrimeFaces) | Serveur (Quarkus) | Description |
|---|---|---|
http://localhost:8081 |
http://localhost:8080 |
Communication HTTP |
BtpXpressApiClient |
@Path("/api/v1/*") |
Interface REST Client |
OIDC Client btpxpress-frontend |
JWT Validation | Authentification |
ChantierService |
ChantierResource |
Service métier chantiers |
🔐 Authentification
- Client accède à une page protégée → Redirection vers Keycloak
- Keycloak (security.lions.dev) → Authentification utilisateur
- Keycloak retourne le token → Stocké dans la session du client
- Client fait appel API → Token JWT envoyé dans header
Authorization - Backend valide le token → Via les certificats Keycloak publics
🚀 Démarrage
-
Backend :
cd btpxpress-server mvn quarkus:dev→ Accessible sur http://localhost:8080
-
Client :
cd btpxpress-client mvn quarkus:dev→ Accessible sur http://localhost:8081
-
Accès :
- Page d'accueil : http://localhost:8081/
- Dashboard : http://localhost:8081/dashboard.xhtml
- Login : http://localhost:8081/login.xhtml
⚠️ Points d'attention
- Le client doit être configuré avec le même realm Keycloak que le serveur (
btpxpress) - Le client ID
btpxpress-frontenddoit exister dans Keycloak - Les tokens JWT doivent être envoyés automatiquement via le REST Client
- Le backend doit accepter les requêtes CORS depuis
http://localhost:8081