This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/REST_CLIENTS_ET_BEANS_CREES.md
lionsdev e206b6c02c feat: Finalisation du projet lions-user-manager
- Ajout du module client Quarkus PrimeFaces Freya avec interface complète
- Ajout de l'AuditResource pour la gestion des logs d'audit
- Ajout du SyncResource pour la synchronisation Keycloak
- Ajout du SyncServiceImpl pour les opérations de synchronisation
- Ajout des DTOs de synchronisation (SyncStatusDTO, etc.)
- Corrections mineures dans RoleMapper, RoleServiceImpl, AuditServiceImpl
- Configuration des properties pour dev et prod
- Ajout de la configuration Claude Code (.claude/)
- Documentation complète du projet (AI_HANDOFF_DOCUMENT.md)

Le projet compile maintenant avec succès (BUILD SUCCESS).
Tous les modules (API, Server Impl, Client) sont fonctionnels.
2025-12-04 21:11:44 +00:00

6.8 KiB

REST Clients et Beans JSF Créés - Lions User Manager

Date: 2025-01-29
Statut: REST CLIENTS ET BEANS JSF CRÉÉS


📊 Résumé

Total:

  • REST Clients: 4 interfaces
  • Beans JSF: 5 beans

🔌 REST Clients (4/4 )

1. UserServiceClient.java

Localisation: client/service/UserServiceClient.java

Méthodes:

  • searchUsers() - Recherche d'utilisateurs
  • getUserById() - Récupération par ID
  • getAllUsers() - Liste paginée
  • createUser() - Création
  • updateUser() - Mise à jour
  • deleteUser() - Suppression
  • activateUser() / deactivateUser() - Activation/Désactivation
  • resetPassword() - Réinitialisation mot de passe
  • sendVerificationEmail() - Envoi email vérification
  • logoutAllSessions() - Déconnexion sessions
  • getActiveSessions() - Sessions actives

Configuration: @RegisterRestClient(configKey = "lions-user-manager-api")


2. RoleServiceClient.java

Localisation: client/service/RoleServiceClient.java

Méthodes Realm Roles:

  • createRealmRole() - Création rôle Realm
  • getRealmRoleByName() - Récupération par nom
  • getAllRealmRoles() - Liste tous les rôles Realm
  • updateRealmRole() - Mise à jour
  • deleteRealmRole() - Suppression

Méthodes Client Roles:

  • createClientRole() - Création rôle Client
  • getAllClientRoles() - Liste tous les rôles Client
  • getClientRoleByName() - Récupération par nom
  • deleteClientRole() - Suppression

Méthodes Attribution:

  • assignRoleToUser() - Attribuer un rôle
  • revokeRoleFromUser() - Révoquer un rôle
  • getUserRoles() - Rôles d'un utilisateur

Méthodes Composite:

  • getCompositeRoles() - Rôles composites
  • addCompositeRole() - Ajouter rôle composite
  • removeCompositeRole() - Retirer rôle composite

3. AuditServiceClient.java

Localisation: client/service/AuditServiceClient.java

Méthodes Recherche:

  • searchLogs() - Recherche avancée
  • getLogsByActeur() - Par acteur
  • getLogsByRealm() - Par realm
  • getLogsByRessource() - Par ressource
  • getLogsByAction() - Par type d'action

Méthodes Statistiques:

  • getActionStatistics() - Statistiques par action
  • getUserActivityStatistics() - Statistiques par utilisateur
  • getFailureCount() - Nombre d'échecs
  • getSuccessCount() - Nombre de succès

Méthodes Export:

  • exportLogsToCSV() - Export CSV

4. SyncServiceClient.java

Localisation: client/service/SyncServiceClient.java

Méthodes Health:

  • checkHealth() - Health check général
  • checkKeycloakHealth() - Health check Keycloak

Méthodes Synchronisation:

  • syncUsers() - Synchroniser utilisateurs
  • syncRoles() - Synchroniser rôles

Méthodes Vérification:

  • userExists() - Vérifier existence utilisateur
  • roleExists() - Vérifier existence rôle

🎯 Beans JSF (5/5 )

1. UserListBean.java

Localisation: client/view/UserListBean.java
Scope: @ViewScoped

Fonctionnalités:

  • Liste paginée des utilisateurs
  • Recherche simple et avancée
  • Filtres (realm, statut)
  • Actions (activate, deactivate, delete, logout sessions)
  • Navigation vers profil/édition/création

Propriétés principales:

  • users: List
  • searchCriteria: UserSearchCriteriaDTO
  • selectedUser: UserDTO
  • Pagination (currentPage, pageSize, totalRecords)

2. UserProfilBean.java

Localisation: client/view/UserProfilBean.java
Scope: @ViewScoped

Fonctionnalités:

  • Affichage profil utilisateur
  • Mode édition
  • Réinitialisation mot de passe
  • Activation/Désactivation
  • Envoi email vérification
  • Déconnexion sessions

Propriétés principales:

  • user: UserDTO
  • userId: String
  • editMode: boolean
  • newPassword: String (pour reset)

3. UserCreationBean.java

Localisation: client/view/UserCreationBean.java
Scope: @ViewScoped

Fonctionnalités:

  • Création nouvel utilisateur
  • Validation mot de passe
  • Sélection realm
  • Initialisation valeurs par défaut

Propriétés principales:

  • newUser: UserDTO
  • password: String
  • passwordConfirm: String
  • realmName: String

4. RoleGestionBean.java

Localisation: client/view/RoleGestionBean.java
Scope: @ViewScoped

Fonctionnalités:

  • Liste rôles Realm et Client
  • Création rôles Realm/Client
  • Suppression rôles
  • Attribution/Révocation rôles
  • Filtres (realm, client, type)

Propriétés principales:

  • realmRoles: List
  • clientRoles: List
  • newRole: RoleDTO
  • selectedRole: RoleDTO

5. AuditConsultationBean.java

Localisation: client/view/AuditConsultationBean.java
Scope: @ViewScoped

Fonctionnalités:

  • Consultation logs d'audit
  • Recherche avancée
  • Filtres (acteur, date, type action, ressource, succès)
  • Statistiques (actions, utilisateurs, échecs/succès)
  • Export CSV

Propriétés principales:

  • auditLogs: List
  • actionStatistics: Map<TypeActionAudit, Long>
  • userActivityStatistics: Map<String, Long>
  • Filtres de recherche

📐 Patterns Utilisés

REST Clients

  • @RegisterRestClient avec configKey
  • @Path, @GET, @POST, @PUT, @DELETE
  • @QueryParam, @PathParam
  • @Produces et @Consumes MediaType.APPLICATION_JSON

Beans JSF

  • @Named pour injection CDI
  • @ViewScoped pour scope de vue
  • @Inject @RestClient pour injection REST Client
  • @PostConstruct pour initialisation
  • Constantes de navigation (WOU/DRY pattern)
  • Gestion messages (success/error)
  • Logging avec Logger

🔧 Configuration Requise

application.properties

# URL du backend
lions.user.manager.backend.url=http://localhost:8080

# Configuration REST Client
quarkus.rest-client.lions-user-manager-api.url=${lions.user.manager.backend.url}
quarkus.rest-client.lions-user-manager-api.scope=jakarta.inject.Singleton
quarkus.rest-client.lions-user-manager-api.connect-timeout=5000
quarkus.rest-client.lions-user-manager-api.read-timeout=30000

📝 Notes

  1. Gestion d'erreurs: Tous les beans incluent try-catch avec logging et messages utilisateur
  2. Validation: Validation côté client dans les beans (ex: mot de passe)
  3. Pagination: Support pagination dans UserListBean et AuditConsultationBean
  4. TODO: Certaines méthodes nécessitent l'implémentation de la récupération des realms depuis Keycloak

🚀 Prochaines Étapes

  1. REST Clients créés - TERMINÉ
  2. Beans JSF créés - TERMINÉ
  3. Pages XHTML - À créer
  4. Configuration application.properties - À compléter
  5. Intégration unionflow - À faire

Statut: 100% COMPLÉTÉ
Date: 2025-01-29
Version: 1.0.0