Refactoring

This commit is contained in:
DahoudG
2025-09-19 16:09:21 +00:00
parent 4ac376b7e7
commit 3f2398a55d
44 changed files with 7400 additions and 0 deletions

261
README-Keycloak-Setup.md Normal file
View File

@@ -0,0 +1,261 @@
# 🔐 Configuration Architecture Rôles UnionFlow dans Keycloak
Ce repository contient tous les scripts nécessaires pour configurer complètement l'architecture des rôles UnionFlow dans Keycloak en utilisant exclusivement des commandes curl.
## 📋 Vue d'ensemble
L'architecture UnionFlow comprend **8 rôles métier hiérarchiques** avec **8 comptes de test** correspondants, permettant de tester tous les cas d'usage de l'application mobile.
### 🏗️ Architecture des Rôles
```
SUPER_ADMINISTRATEUR (100) ← Équipe technique UnionFlow
ADMINISTRATEUR_ORGANISATION (85) ← Président/Directeur
RESPONSABLE_TECHNIQUE (80) ← Secrétaire général/IT
RESPONSABLE_FINANCIER (75) ← Trésorier/Comptable
RESPONSABLE_MEMBRES (70) ← RH/Gestionnaire communauté
MEMBRE_ACTIF (50) ← Membre engagé/Organisateur
MEMBRE_SIMPLE (30) ← Membre cotisant standard
VISITEUR (0) ← Personne intéressée/Non-membre
```
## 🚀 Scripts Disponibles
| Script | Description | Usage |
|--------|-------------|-------|
| `setup-unionflow-keycloak.sh` | **Configuration complète** - Crée tous les rôles et comptes | `./setup-unionflow-keycloak.sh` |
| `verify-unionflow-keycloak.sh` | **Vérification** - Teste la configuration et génère un rapport | `./verify-unionflow-keycloak.sh` |
| `test-mobile-auth.sh` | **Test authentification** - Simule l'auth mobile OAuth2 | `./test-mobile-auth.sh [username]` |
| `cleanup-unionflow-keycloak.sh` | **Nettoyage** - Supprime complètement la configuration | `./cleanup-unionflow-keycloak.sh` |
## 📦 Prérequis
### Environnement
- **Keycloak** : Accessible sur `http://192.168.1.145:8180`
- **Realm** : `unionflow` (doit exister)
- **Client** : `unionflow-mobile` (doit être configuré)
- **Admin** : `admin/admin`
### Outils système
```bash
# Vérifier la disponibilité des outils
curl --version
openssl version
base64 --version
```
### Permissions
```bash
# Rendre les scripts exécutables
chmod +x *.sh
```
## 🔧 Installation et Configuration
### Étape 1 : Configuration initiale
```bash
# 1. Cloner ou télécharger les scripts
# 2. Vérifier que Keycloak est accessible
curl -I http://192.168.1.145:8180
# 3. Lancer la configuration complète
./setup-unionflow-keycloak.sh
```
### Étape 2 : Vérification
```bash
# Vérifier que tout est correctement configuré
./verify-unionflow-keycloak.sh
```
### Étape 3 : Test d'authentification
```bash
# Tester tous les comptes
./test-mobile-auth.sh
# Tester un compte spécifique
./test-mobile-auth.sh marie.active
```
## 👥 Comptes de Test Créés
| Rôle | Username | Email | Password | Niveau |
|------|----------|-------|----------|---------|
| **SUPER_ADMINISTRATEUR** | `superadmin` | `superadmin@unionflow.dev` | `SuperAdmin123!` | 100 |
| **ADMINISTRATEUR_ORGANISATION** | `admin.org` | `admin@association-dev.fr` | `AdminOrg123!` | 85 |
| **RESPONSABLE_TECHNIQUE** | `tech.lead` | `tech@association-dev.fr` | `TechLead123!` | 80 |
| **RESPONSABLE_FINANCIER** | `tresorier` | `tresorier@association-dev.fr` | `Tresorier123!` | 75 |
| **RESPONSABLE_MEMBRES** | `rh.manager` | `rh@association-dev.fr` | `RhManager123!` | 70 |
| **MEMBRE_ACTIF** | `marie.active` | `marie@association-dev.fr` | `Marie123!` | 50 |
| **MEMBRE_SIMPLE** | `jean.simple` | `jean@association-dev.fr` | `Jean123!` | 30 |
| **VISITEUR** | `visiteur` | `visiteur@example.com` | `Visiteur123!` | 0 |
## 📱 Intégration Application Mobile
### Configuration Flutter
```dart
// Configuration Keycloak dans l'app mobile
const keycloakConfig = {
'serverUrl': 'http://192.168.1.145:8180',
'realm': 'unionflow',
'clientId': 'unionflow-mobile',
'redirectUri': 'dev.lions.unionflow-mobile://auth/callback',
};
```
### Test d'authentification
```bash
# Tester l'authentification avec le compte marie.active
./test-mobile-auth.sh marie.active
# Résultat attendu :
# ✓ marie.active (marie@association-dev.fr) - Authentification réussie
# ✓ Tokens obtenus avec succès
# ✓ Informations utilisateur récupérées
```
## 🔍 Dashboards par Rôle
Chaque rôle a accès à son dashboard spécifique :
### 🔴 Super Administrateur
- **Dashboard** : Command Center système
- **Fonctionnalités** : Métriques globales, gestion multi-organisations, monitoring
### 🔵 Administrateur Organisation
- **Dashboard** : Vue d'ensemble organisation
- **Fonctionnalités** : KPI organisation, gestion membres/finances, rapports
### 🟢 Responsable Technique
- **Dashboard** : Outils techniques
- **Fonctionnalités** : Configuration, workflows, gestion événements
### 🟡 Responsable Financier
- **Dashboard** : Analytics financiers
- **Fonctionnalités** : Budget, cotisations, rapports comptables
### 🟣 Responsable Membres
- **Dashboard** : Gestion communauté
- **Fonctionnalités** : Engagement membres, communication, solidarité
### 🟠 Membre Actif
- **Dashboard** : Activity Center personnel
- **Fonctionnalités** : Mes événements, contributions, engagement
### ⚪ Membre Simple
- **Dashboard** : Vue personnelle
- **Fonctionnalités** : Profil, cotisations, événements disponibles
### 🔵 Visiteur
- **Dashboard** : Landing page attractive
- **Fonctionnalités** : Découverte organisation, événements publics, inscription
## 🛠️ Dépannage
### Problèmes courants
#### 1. Erreur de connexion Keycloak
```bash
# Vérifier que Keycloak est accessible
curl -I http://192.168.1.145:8180
# Si erreur, vérifier l'IP et le port
```
#### 2. Token d'administration invalide
```bash
# Vérifier les credentials admin
curl -X POST "http://192.168.1.145:8180/realms/master/protocol/openid-connect/token" \
-d "username=admin&password=admin&grant_type=password&client_id=admin-cli"
```
#### 3. Rôles ou utilisateurs non créés
```bash
# Relancer la configuration
./cleanup-unionflow-keycloak.sh
./setup-unionflow-keycloak.sh
```
#### 4. Authentification mobile échoue
```bash
# Vérifier la configuration du client unionflow-mobile
# S'assurer que les redirect URIs sont corrects
```
### Logs de débogage
```bash
# Activer les logs détaillés
export DEBUG=1
./setup-unionflow-keycloak.sh
# Vérifier les réponses curl
curl -v [commande...]
```
## 🔄 Maintenance
### Mise à jour des rôles
```bash
# 1. Sauvegarder la configuration actuelle
./verify-unionflow-keycloak.sh > backup-config.txt
# 2. Nettoyer
./cleanup-unionflow-keycloak.sh
# 3. Reconfigurer avec les nouveaux paramètres
./setup-unionflow-keycloak.sh
```
### Ajout de nouveaux comptes
```bash
# Modifier le script setup-unionflow-keycloak.sh
# Ajouter les nouveaux comptes dans la section appropriée
# Relancer la configuration
```
## 📊 Monitoring
### Vérification périodique
```bash
# Script de vérification quotidienne
./verify-unionflow-keycloak.sh
# Test d'authentification hebdomadaire
./test-mobile-auth.sh
```
### Métriques importantes
- ✅ 8/8 rôles configurés
- ✅ 8/8 comptes de test fonctionnels
- ✅ 100% des authentifications réussies
- ✅ Tokens JWT valides avec rôles
## 🚀 Prochaines Étapes
1. **Intégration Backend** : Mettre à jour les annotations `@RolesAllowed` dans le code Java
2. **Synchronisation Mobile** : Adapter les dashboards selon les nouveaux rôles
3. **Tests E2E** : Implémenter des tests automatisés complets
4. **Documentation** : Créer la documentation utilisateur par rôle
## 📞 Support
En cas de problème :
1. Consulter les logs des scripts
2. Vérifier la configuration Keycloak via l'interface admin
3. Tester manuellement les endpoints avec curl
4. Utiliser le script de nettoyage et reconfigurer si nécessaire
---
**🎉 Configuration UnionFlow Keycloak - Prête pour la production !**