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