docs: Ajout documentation et scripts de démarrage

- Documentation configuration OIDC, démarrage, diagnostic
- Scripts batch pour démarrage backend et client
- Script shell pour configuration Keycloak frontend
This commit is contained in:
lionsdev
2025-12-05 16:23:57 +00:00
parent b3ef7192ad
commit 4cd23c03ad
13 changed files with 1502 additions and 0 deletions

224
INSTRUCTIONS_TEST.md Normal file
View File

@@ -0,0 +1,224 @@
# Instructions de Test - Lions User Manager
## ✅ Configuration Terminée
Tous les composants sont maintenant configurés et opérationnels !
## 🚀 Architecture Actuelle
```
┌─────────────────────────────────────────────┐
│ Navigateur Web │
└────────────┬────────────────────────────────┘
│ 1. http://localhost:8080
│ Redirection OIDC →
┌─────────────────────────────────────────────┐
│ KEYCLOAK (Port 8180) ✅ │
│ - Realm: lions-user-manager │
│ - Client: lions-user-manager-client │
│ - Secret: client-secret-lions-2025 │
└────────────┬────────────────────────────────┘
│ 2. Authentification
│ testuser / test123
┌─────────────────────────────────────────────┐
│ FRONTEND (Port 8080) ✅ │
│ - OIDC activé │
│ - Reçoit token JWT │
└────────────┬────────────────────────────────┘
│ 3. Appels API avec token JWT
┌─────────────────────────────────────────────┐
│ BACKEND (Port 8081) ✅ │
│ - Vérifie le token JWT │
│ - Appelle Keycloak Admin API │
└─────────────────────────────────────────────┘
```
## 📋 Étapes de Test
### 1. Vérifier que tous les services tournent
```bash
# Backend (port 8081)
curl http://localhost:8081/q/health
# Keycloak (port 8180)
curl http://localhost:8180/realms/lions-user-manager
# Frontend (port 8080) - devrait rediriger
curl -I http://localhost:8080
```
### 2. Tester l'authentification complète
1. **Ouvrir le navigateur** : http://localhost:8080
2. **Redirection automatique** vers Keycloak :
- URL sera : `http://localhost:8180/realms/lions-user-manager/protocol/openid-connect/auth?...`
3. **Se connecter** avec les credentials :
- **Username** : `testuser`
- **Password** : `test123`
4. **Redirection** vers le frontend authentifié
5. **Accéder aux pages protégées** :
- http://localhost:8080/pages/user-manager/users/list.xhtml
### 3. Tester les API Backend directement
#### Avec token (authentifié)
```bash
# 1. Obtenir un token
TOKEN=$(curl -s -X POST "http://localhost:8180/realms/lions-user-manager/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=lions-user-manager-client" \
-d "client_secret=client-secret-lions-2025" \
-d "username=testuser" \
-d "password=test123" \
-d "grant_type=password" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
# 2. Appeler l'API avec le token
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8081/api/users?realm=lions-user-manager"
```
## 🔑 Credentials
### Keycloak Admin
- **URL** : http://localhost:8180/admin
- **Username** : `admin`
- **Password** : `admin`
- **Realm** : `master`
### Test User (Application)
- **URL** : http://localhost:8080
- **Username** : `testuser`
- **Password** : `test123`
- **Realm** : `lions-user-manager`
### Client Configuration
- **Client ID** : `lions-user-manager-client`
- **Client Secret** : `client-secret-lions-2025`
- **Realm** : `lions-user-manager`
## 📊 Endpoints de Test
### Frontend
- **Accueil** : http://localhost:8080
- **Users List** : http://localhost:8080/pages/user-manager/users/list.xhtml
- **Roles List** : http://localhost:8080/pages/user-manager/roles/list.xhtml
### Backend API
- **Swagger UI** : http://localhost:8081/q/swagger-ui
- **Dev UI** : http://localhost:8081/q/dev
- **Health** : http://localhost:8081/q/health
- **Keycloak Health** : http://localhost:8081/api/health/keycloak
- **Users API** : http://localhost:8081/api/users?realm=lions-user-manager
- **Roles API** : http://localhost:8081/api/roles/realm?realm=lions-user-manager
### Keycloak
- **Admin Console** : http://localhost:8180/admin
- **Realm Info** : http://localhost:8180/realms/lions-user-manager
- **Well-known** : http://localhost:8180/realms/lions-user-manager/.well-known/openid-configuration
## ⚠️ Troubleshooting
### Frontend retourne "Forbidden"
- **Cause** : Pas authentifié
- **Solution** : Allez sur http://localhost:8080, laissez-vous rediriger vers Keycloak et authentifiez-vous
### Erreur "Client not found"
- **Cause** : Configuration Keycloak incorrecte
- **Solution** : Vérifier que le client `lions-user-manager-client` existe dans le realm `lions-user-manager`
### Backend retourne 403
- **Cause** : Token invalide ou manquant
- **Solution** : S'assurer que le frontend envoie bien le token JWT dans l'en-tête `Authorization`
### "Invalid redirect_uri"
- **Cause** : Les redirect URIs ne sont pas configurées correctement
- **Solution** : Dans Keycloak Admin, vérifier que `http://localhost:8080/*` est bien dans les Valid Redirect URIs
## 🧪 Scénarios de Test
### Scénario 1 : Authentification et Liste des Utilisateurs
1. Ouvrir http://localhost:8080
2. Se connecter avec testuser/test123
3. Naviguer vers la liste des utilisateurs
4. Vérifier que les utilisateurs s'affichent
### Scénario 2 : Créer un Utilisateur
1. S'authentifier (voir Scénario 1)
2. Cliquer sur "Nouveau Utilisateur"
3. Remplir le formulaire
4. Sauvegarder
5. Vérifier que l'utilisateur apparaît dans la liste
### Scénario 3 : Gestion des Rôles
1. S'authentifier
2. Aller sur la page des rôles
3. Assigner des rôles à un utilisateur
4. Vérifier que les rôles sont bien assignés
### Scénario 4 : API Backend Directe
```bash
# Obtenir token
TOKEN=$(curl -s -X POST "http://localhost:8180/realms/lions-user-manager/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=lions-user-manager-client" \
-d "client_secret=client-secret-lions-2025" \
-d "username=testuser" \
-d "password=test123" \
-d "grant_type=password" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
# Lister utilisateurs
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8081/api/users?realm=lions-user-manager"
# Lister rôles
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8081/api/roles/realm?realm=lions-user-manager"
```
## ✅ Checklist de Validation
- [ ] Backend démarre sur port 8081
- [ ] Keycloak accessible sur port 8180
- [ ] Frontend démarre sur port 8080
- [ ] Redirection OIDC fonctionne (frontend → Keycloak)
- [ ] Authentification réussie avec testuser/test123
- [ ] Pages protégées accessibles après authentification
- [ ] API Backend retourne des données
- [ ] Token JWT est correctement transmis
- [ ] Swagger UI accessible et fonctionnel
## 🎯 Prochaines Étapes (Post-Test)
1. ✅ Validation de l'authentification complète
2. ⏳ Tests fonctionnels de toutes les pages
3. ⏳ Tests CRUD complets (Create, Read, Update, Delete)
4. ⏳ Tests de gestion des rôles
5. ⏳ Tests d'audit
6. ⏳ Tests de synchronisation
## 📝 Notes
- Le frontend utilise maintenant OIDC avec Keycloak local
- Le backend vérifie les tokens JWT via OIDC
- Tous les appels API nécessitent un token valide
- Le test user `testuser` a les rôles : `admin`, `user_manager`
---
**Date de configuration** : 2025-12-05
**Environnement** : Développement (DEV)