Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension

This commit is contained in:
lionsdev
2025-12-27 00:18:31 +00:00
parent 5e272a8256
commit 5c996931a6
206 changed files with 36646 additions and 1593 deletions

View File

@@ -0,0 +1,139 @@
# Configuration Keycloak - Utilisateur de Test
Ce document explique comment configurer un utilisateur de test dans Keycloak avec les rôles nécessaires pour utiliser `lions-user-manager`.
## Prérequis
- Keycloak accessible sur `http://localhost:8180`
- Accès admin : `admin` / `admin`
- Realm `lions-user-manager` créé
## Étapes de Configuration
### 1. Créer l'utilisateur de test
1. Connectez-vous à Keycloak Admin Console : `http://localhost:8180`
2. Sélectionnez le realm `lions-user-manager`
3. Allez dans **Users****Add user**
4. Remplissez les informations :
- **Username** : `test-user` (ou le nom de votre choix)
- **Email** : `test@lions.dev`
- **First name** : `Test`
- **Last name** : `User`
- **Email verified** : `ON`
- **Enabled** : `ON`
5. Cliquez sur **Create**
### 2. Définir le mot de passe
1. Dans la page de l'utilisateur, allez dans l'onglet **Credentials**
2. Cliquez sur **Set password**
3. Définissez un mot de passe (ex: `test123`)
4. **Temporary** : `OFF` (pour éviter de changer le mot de passe à la première connexion)
5. Cliquez sur **Save**
6. Confirmez dans la popup
### 3. Créer les rôles Realm nécessaires
Les rôles suivants doivent exister dans le realm `lions-user-manager` :
#### Rôles requis pour les endpoints Users :
- `admin` - Accès complet
- `user_manager` - Gestion des utilisateurs
- `user_viewer` - Consultation des utilisateurs
#### Rôles requis pour les endpoints Roles :
- `role_manager` - Gestion des rôles
- `role_viewer` - Consultation des rôles
#### Rôles requis pour les endpoints Audit :
- `auditor` - Accès aux logs d'audit
#### Rôles requis pour les endpoints Sync :
- `sync_manager` - Gestion de la synchronisation
**Création des rôles :**
1. Allez dans **Realm roles****Create role**
2. Créez chaque rôle un par un :
- `admin`
- `user_manager`
- `user_viewer`
- `role_manager`
- `role_viewer`
- `auditor`
- `sync_manager`
### 4. Assigner les rôles à l'utilisateur
1. Retournez dans **Users** → Sélectionnez votre utilisateur de test
2. Allez dans l'onglet **Role mapping**
3. Cliquez sur **Assign role**
4. Sélectionnez **Filter by realm roles**
5. Cochez les rôles nécessaires :
- Pour un accès complet : `admin`
- Pour un accès limité : `user_manager`, `user_viewer`, `role_manager`, `role_viewer`
6. Cliquez sur **Assign**
### 5. Configurer le Client pour les rôles
1. Allez dans **Clients** → Sélectionnez `lions-user-manager-client`
2. Allez dans l'onglet **Mappers**
3. Vérifiez qu'il existe un mapper pour les rôles realm :
- **Name** : `realm roles`
- **Mapper Type** : `Realm Role`
- **Token Claim Name** : `realm_access.roles`
- **Add to access token** : `ON`
- **Add to ID token** : `ON`
- **Add to userinfo** : `ON`
Si le mapper n'existe pas, créez-le :
- Cliquez sur **Create**
- **Name** : `realm roles`
- **Mapper Type** : `Realm Role`
- **Token Claim Name** : `realm_access.roles`
- **Add to access token** : `ON`
- **Add to ID token** : `ON`
- **Add to userinfo** : `ON`
- Cliquez sur **Save**
### 6. Vérifier la configuration
1. Connectez-vous au client avec l'utilisateur de test
2. Ouvrez les DevTools du navigateur (F12)
3. Allez dans **Application****Cookies**
4. Trouvez le cookie de session
5. Décodez le token JWT (utilisez https://jwt.io)
6. Vérifiez que le claim `realm_access.roles` contient les rôles assignés
## Configuration rapide via script
Un script de configuration automatique sera créé prochainement.
## Rôles par endpoint
### `/api/users/*`
- `admin` - Accès complet
- `user_manager` - Création, modification, suppression
- `user_viewer` - Consultation uniquement
### `/api/roles/*`
- `admin` - Accès complet
- `role_manager` - Création, modification, suppression
- `role_viewer` - Consultation uniquement
### `/api/audit/*`
- `admin` - Accès complet
- `auditor` - Consultation des logs
### `/api/sync/*`
- `admin` - Accès complet
- `sync_manager` - Gestion de la synchronisation
## Notes importantes
- Les rôles sont vérifiés côté backend via `@RolesAllowed`
- Le token JWT doit contenir les rôles dans `realm_access.roles`
- Le client propage automatiquement le token au backend via `bearer-token-propagation=true`
- En production, utilisez des rôles plus granulaires selon les besoins