# lions-user-manager-client-quarkus-primefaces-freya > Interface web d'administration — Quarkus + JSF + PrimeFaces Freya ## Dépôt Git `https://git.lions.dev/lionsdev/lions-user-manager-client-quarkus-primefaces-freya` --- ## Responsabilités - Interface d'administration des utilisateurs et rôles Keycloak - Authentification SSO via OIDC (Keycloak) - Communication avec le backend via MicroProfile REST Client - Dashboard, gestion CRUD, audit, synchronisation, assignation de realms --- ## Pages | Page | Bean | Description | |------|------|-------------| | `/dashboard.xhtml` | `DashboardBean` | Vue d'ensemble et statistiques | | `/users/list.xhtml` | `UserListBean` | Liste paginée avec filtres et export CSV | | `/users/creation.xhtml` | `UserCreationBean` | Formulaire de création | | `/users/profil.xhtml` | `UserProfilBean` | Édition profil utilisateur | | `/roles/gestion.xhtml` | `RoleGestionBean` | Gestion des rôles par realm | | `/audit/consultation.xhtml` | `AuditConsultationBean` | Consultation des logs d'audit | | `/sync/dashboard.xhtml` | `SyncDashboardBean` | État et pilotage des synchronisations | | `/realms/assignment.xhtml` | `RealmAssignmentBean` | Assignation utilisateurs/realms | --- ## Stack | Composant | Technologie | |-----------|-------------| | Framework | Quarkus 3.17.8 + Undertow (Servlet) | | UI | PrimeFaces 14.0.5 (Jakarta) | | Thème | Freya Enterprise | | Auth | `quarkus-oidc` (Keycloak) + PKCE | | REST Client | MicroProfile REST Client (`quarkus-rest-client-jackson`) | | Token Propagation | `quarkus-rest-client-oidc-token-propagation` | --- ## Développement local ### Prérequis - Java 17+, Maven 3.9+ - Keycloak sur `localhost:8180` (realm `lions-user-manager` configuré) - Backend `server-impl` démarré sur `localhost:8081` ### Démarrage ```bash mvn quarkus:dev ``` Application disponible sur : `http://localhost:8082` ### Configuration dev Fichier : `src/main/resources/application-dev.properties` ```properties quarkus.http.port=8082 quarkus.oidc.auth-server-url=http://localhost:8180/realms/lions-user-manager lions.user.manager.backend.url=http://localhost:8081 ``` --- ## Configuration production Fichier : `src/main/resources/application-prod.properties` | Variable | Description | |----------|-------------| | `KEYCLOAK_AUTH_SERVER_URL` | URL du realm Keycloak | | `KEYCLOAK_CLIENT_ID` | Client OIDC (défaut : `lions-user-manager-client`) | | `OIDC_ENCRYPTION_SECRET` | Secret de chiffrement des tokens (32 caractères min) | | `LIONS_USER_MANAGER_BACKEND_URL` | URL de l'API backend | --- ## Build ```bash # Build standard (développement) mvn clean package -DskipTests # Build production mvn clean package -P prod -DskipTests ``` --- ## Déploiement (lionsctl) ```bash lionsctl pipeline \ -u https://git.lions.dev/lionsdev/lions-user-manager-client-quarkus-primefaces-freya \ -b main -j 17 -e production -c k1 -p prod ``` **Pipeline** : clone → `mvn package -P prod` → `docker build -f Dockerfile.prod` → push `registry.lions.dev` → `kubectl apply` → health check **URL prod** : `https://users.lions.dev` --- ## Structure ``` src/main/ ├── java/dev/lions/user/manager/client/ │ ├── bean/ # Beans JSF (@Named, @ViewScoped / @SessionScoped) │ └── client/ # REST Clients (UserRestClient, RoleRestClient, ...) └── resources/ ├── META-INF/resources/ │ ├── templates/ │ │ └── components/ # Composants PrimeFaces réutilisables │ ├── dashboard.xhtml │ ├── users/ │ ├── roles/ │ ├── audit/ │ ├── sync/ │ └── realms/ ├── application.properties ├── application-dev.properties └── application-prod.properties ``` --- ## Licence Propriétaire — Lions Dev © 2025