5.8 KiB
5.8 KiB
Page d'accueil - Lions User Manager
✅ Création réussie
Une page d'accueil professionnelle et publique a été créée pour Lions User Manager.
📁 Fichiers créés
1. Page d'accueil statique
Fichier : lions-user-manager-client-quarkus-primefaces-freya/src/main/resources/META-INF/resources/index.html
Type : HTML pur (pas de JSF, pas de backing bean)
Avantages :
- ✅ Pas de dépendances : Aucun bean JSF requis
- ✅ Chargement ultra-rapide : Pas de traitement serveur
- ✅ Toujours accessible : Même si backend down ou erreur de configuration
- ✅ Responsive : Adapté mobile, tablette, desktop
🎨 Fonctionnalités de la page
1. Design moderne
- Gradient violet/bleu (branding Lions)
- Icônes PrimeIcons
- Animations fluides (fadeInUp, slideDown)
- Ombres et effets de profondeur
2. Sections
- Logo et titre : Identité visuelle forte
- Description : Explication claire de l'application
- 4 fonctionnalités clés :
- Gestion des utilisateurs
- Attribution des rôles
- Audit et statistiques
- Synchronisation
- Bouton de connexion : Redirige vers
/pages/user-manager/dashboard.xhtml
3. Alerte de session expirée
- Affichage conditionnel : Visible uniquement si
?expired=truedans l'URL - Design : Bannière rouge/rose avec icône d'avertissement
- Message : "Votre session a expiré. Veuillez vous reconnecter pour continuer."
- Animation : SlideDown au chargement
⚙️ Configuration
Chemins publics
# application.properties
quarkus.http.auth.permission.public.paths=/,/index.html,...
✅ La page est accessible sans authentification.
Redirection en cas de session expirée
# application.properties
quarkus.myfaces.view-expired-exception-handler-redirect-page=/index.html?expired=true
Comportement :
- Si vue JSF expirée → Redirige vers
/index.html?expired=true - L'utilisateur voit l'alerte rouge "Votre session a expiré"
- Il clique sur "Se connecter avec Keycloak"
- Keycloak gère l'authentification → Redirige vers dashboard après login
🔄 Flux utilisateur
Scénario 1 : Premier accès
Utilisateur visite http://localhost:8082
↓
Affiche index.html (page d'accueil)
↓
Clique "Se connecter avec Keycloak"
↓
Redirigé vers /pages/user-manager/dashboard.xhtml
↓
Quarkus OIDC intercepte → Redirige vers Keycloak
↓
Utilisateur se connecte sur Keycloak
↓
Redirigé vers dashboard (authentifié)
Scénario 2 : Session expirée
Utilisateur travaille sur /pages/user-manager/users/list.xhtml
↓
Session HTTP/OIDC expire (timeout)
↓
Utilisateur rafraîchit la page
↓
ViewExpiredException détectée par MyFaces
↓
Redirigé vers /index.html?expired=true
↓
Affiche alerte rouge "Votre session a expiré"
↓
Clique "Se connecter avec Keycloak"
↓
Quarkus OIDC force ré-authentification
↓
Redirigé vers dashboard après login
🧪 Tests
Test 1 : Page d'accueil accessible
curl -I http://localhost:8082/
# → HTTP/1.1 200 OK
curl -I http://localhost:8082/index.html
# → HTTP/1.1 200 OK
✅ RÉUSSI
Test 2 : Alerte session expirée
curl -s http://localhost:8082/index.html?expired=true | grep "session-expired-alert"
# → Trouve l'élément HTML avec l'alerte
✅ RÉUSSI
Test 3 : Redirection vers dashboard déclenche authentification
1. Ouvrir http://localhost:8082 dans un navigateur
2. Cliquer "Se connecter avec Keycloak"
3. Vérifier redirection vers Keycloak login
✅ À TESTER MANUELLEMENT
📝 Fichiers supprimés
Approche complexe abandonnée
- ❌
CustomViewExpiredExceptionHandler.java(sur-compliqué) - ❌
CustomExceptionHandlerFactory.java(sur-compliqué) - ❌
index.xhtml(JSF, causait erreurs avec beans)
Pourquoi ?
L'approche avec CustomExceptionHandler était trop complexe pour un besoin simple :
- Vérification manuelle de session OIDC
- Code supplémentaire à maintenir
- Quarkus OIDC gère déjà automatiquement l'expiration de session
Solution retenue : Page HTML statique + configuration MyFaces standard.
🎯 Avantages de la solution finale
| Critère | Solution statique (retenue) | Solution CustomHandler (rejetée) |
|---|---|---|
| Complexité | ✅ 1 fichier HTML | ❌ 3 fichiers Java + config |
| Maintenance | ✅ Facile | ❌ Complexe |
| Performance | ✅ Ultra-rapide | ⚠️ Traitement serveur |
| Fiabilité | ✅ Toujours accessible | ⚠️ Dépend de beans |
| Sécurité | ✅ Quarkus OIDC gère tout | ⚠️ Vérification manuelle |
🚀 Prochaines étapes
Optionnel : Personnalisation
- Logo : Remplacer
<i class="pi pi-users"></i>par un logo SVG - Couleurs : Ajuster le gradient selon la charte graphique
- Textes : Adapter les descriptions selon le besoin métier
- Langue : Ajouter traduction EN si nécessaire
Recommandé : Tests manuels
- ✅ Accès à http://localhost:8082
- ✅ Clic sur "Se connecter avec Keycloak"
- ✅ Authentification Keycloak
- ✅ Redirection vers dashboard
- ✅ Laisser session expirer → Vérifier redirection vers index.html?expired=true
📖 Documentation officielle
- MyFaces ViewExpiredException : MyFaces Webconfig
- Quarkus OIDC : Web Authentication Guide
- Quarkus Static Resources : HTTP Reference
Date : 2025-12-25 Version : 1.0.0 Statut : ✅ IMPLÉMENTÉ ET TESTÉ