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 |
|---|---|---|
/pages/user-manager/dashboard.xhtml |
DashboardBean |
Vue d'ensemble et KPIs (composant lions-stat-card) |
/pages/user-manager/users/list.xhtml |
UserListBean |
Liste paginée avec filtres et export CSV |
/pages/user-manager/users/create.xhtml |
UserCreationBean |
Formulaire de création |
/pages/user-manager/users/edit.xhtml |
UserEditBean |
Édition d'un utilisateur |
/pages/user-manager/users/view.xhtml |
UserViewBean |
Détail utilisateur |
/pages/user-manager/users/profile.xhtml |
UserProfilBean |
Profil connecté |
/pages/user-manager/roles/list.xhtml |
RoleListBean |
Gestion des rôles par realm |
/pages/user-manager/audit/logs.xhtml |
AuditLogsBean |
Consultation des logs d'audit |
/pages/user-manager/sync/dashboard.xhtml |
SyncDashboardBean |
État et pilotage des synchronisations |
/pages/user-manager/settings.xhtml |
SettingsBean |
Paramètres utilisateur |
/pages/user-manager/help.xhtml |
— | Base de connaissance opérationnelle LUM |
/pages/admin/realm-assignments.xhtml |
RealmAssignmentBean |
Assignation utilisateurs/realms |
Toutes les pages utilisent les composants partagés lions-faces-layout:1.0.4 (refonte UI 2026-04) : lions-page-header, lions-card, lions-stat-card, lions-empty-state.
Stack
| Composant | Technologie |
|---|---|
| Framework | Quarkus 3.27.3 LTS + MyFaces (Servlet) |
| UI | PrimeFaces 14.0.5 (Jakarta) |
| Thème | Freya Enterprise |
| Composants partagés | lions-faces-layout:1.0.4 (layout Freya + OIDC beans + composants lions-page-header, lions-card, lions-stat-card, lions-empty-state) |
| 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 21, Maven 3.9+
- Keycloak sur
localhost:8180(realmlions-user-managerconfiguré) - Backend
server-impldémarré surlocalhost:8081
Démarrage
mvn quarkus:dev
Application disponible sur : http://localhost:8082
Configuration dev
Fichier : src/main/resources/application-dev.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
# Build standard (développement)
mvn clean package -DskipTests
# Build production
mvn clean package -P prod -DskipTests
Déploiement (lionsctl)
lionsctl pipeline \
-u https://git.lions.dev/lionsdev/lions-user-manager-client-quarkus-primefaces-freya \
-b main -j 21 -e production -c k1 -p prod
Pipeline : clone → mvn package -P prod → docker build -f Dockerfile (racine, fast-jar, ubi8/openjdk-21:1.21, UID 1001) → push registry.lions.dev → kubectl apply → health check
URL prod : https://users.lions.dev
Pré-requis infrastructure avant pipeline :
- Deployment Helm existant supprimé au préalable (selector immutable)
- Après pipeline : patcher le deployment avec
envFrom: [lions-user-manager-keycloak-eso, lions-user-manager-client-oidc-eso]pour injecterKEYCLOAK_CLIENT_SECRETdepuis ESO/Vault (lionsctl n'injecte pas les secrets OIDC par défaut) - Service selector à repatcher (retirer les labels Helm
app.kubernetes.io/*)
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 © 2026