154 lines
5.2 KiB
Markdown
154 lines
5.2 KiB
Markdown
# 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` (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 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 injecter `KEYCLOAK_CLIENT_SECRET` depuis 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
|