Files
btpxpress-frontend/CONFIGURATION.md

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 : BtpXpressApiClient configuré
  • Service : ChantierService créé pour encapsuler les appels API
  • CORS Backend : http://localhost:8081 ajouté 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

  1. Client accède à une page protégée → Redirection vers Keycloak
  2. Keycloak (security.lions.dev) → Authentification utilisateur
  3. Keycloak retourne le token → Stocké dans la session du client
  4. Client fait appel API → Token JWT envoyé dans header Authorization
  5. Backend valide le token → Via les certificats Keycloak publics

🚀 Démarrage

  1. Backend :

    cd btpxpress-server
    mvn quarkus:dev
    

    → Accessible sur http://localhost:8080

  2. Client :

    cd btpxpress-client
    mvn quarkus:dev
    

    → Accessible sur http://localhost:8081

  3. Accès :

⚠️ Points d'attention

  • Le client doit être configuré avec le même realm Keycloak que le serveur (btpxpress)
  • Le client ID btpxpress-frontend doit 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