docs: Documentation complète de la configuration des ports

- Explication du problème de conflit de ports
- Configuration correcte : Frontend 8080, Backend 8081, Keycloak 8180
- Architecture et flux d'authentification
- Guide de démarrage des applications
- URLs correctes et erreurs courantes
- Diagnostic et résolution de problèmes
This commit is contained in:
lionsdev
2025-12-04 23:23:25 +00:00
parent 2872ac3f94
commit c754a47680

212
README_PORTS.md Normal file
View File

@@ -0,0 +1,212 @@
# Configuration des Ports - Lions User Manager
## ✅ Problème résolu : Conflit de ports
**Problème initial** : Les deux applications (frontend et backend) étaient configurées sur le **même port 8081**, ce qui empêchait le backend de démarrer.
**Solution** : Ports correctement séparés.
## 🌐 Configuration des Ports
### Frontend (Interface Web JSF/PrimeFaces)
- **Port** : `8080`
- **URL** : http://localhost:8080
- **Type** : Application web avec OIDC activé
- **Fichier** : `lions-user-manager-client-quarkus-primefaces-freya/src/main/resources/application.properties`
```properties
quarkus.http.port=8080
```
### Backend (API REST)
- **Port** : `8081`
- **URL** : http://localhost:8081
- **Type** : API REST (pas de pages web)
- **Fichier** : `lions-user-manager-server-impl-quarkus/src/main/resources/application.properties`
```properties
quarkus.http.port=8081
```
### Keycloak (Serveur d'authentification)
- **Port** : `8180`
- **URL** : http://localhost:8180
- **Admin Console** : http://localhost:8180/admin
- **Credentials** : admin / admin
## 🚀 Démarrage des applications
### 1. Démarrer Keycloak (si nécessaire)
```bash
# Vérifier si Keycloak tourne
curl http://localhost:8180/health
# Si Keycloak ne tourne pas, le démarrer (exemple avec Docker)
docker run -p 8180:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:latest start-dev
```
### 2. Démarrer le Backend (port 8081)
```bash
cd lions-user-manager-server-impl-quarkus
mvn clean quarkus:dev
```
**Vérification** :
```bash
# Swagger UI
curl http://localhost:8081/q/swagger-ui
# Dev UI
curl http://localhost:8081/q/dev
# Health Check
curl http://localhost:8081/q/health
```
### 3. Démarrer le Frontend (port 8080)
```bash
cd lions-user-manager-client-quarkus-primefaces-freya
mvn clean quarkus:dev
```
**Vérification** :
```bash
# Page d'accueil
curl http://localhost:8080
# Ou ouvrir dans le navigateur
http://localhost:8080
```
## 📋 Architecture
```
┌─────────────────────────────────────────────┐
│ Navigateur Web │
└────────────┬────────────────────────────────┘
│ 1. Accès à http://localhost:8080
┌─────────────────────────────────────────────┐
│ FRONTEND (Port 8080) │
│ - Pages web JSF/PrimeFaces │
│ - OIDC activé │
│ - Redirige vers Keycloak pour login │
└────────────┬────────────────────────────────┘
│ 2. Appelle l'API backend
│ http://localhost:8081/api/*
┌─────────────────────────────────────────────┐
│ BACKEND (Port 8081) │
│ - API REST │
│ - OIDC désactivé (utilise Admin API) │
│ - Endpoints: /api/users, /api/roles, etc. │
└────────────┬────────────────────────────────┘
│ 3. Gère les utilisateurs via Admin API
┌─────────────────────────────────────────────┐
│ KEYCLOAK (Port 8180) │
│ - Realm: lions-user-manager │
│ - Client: lions-user-manager-client │
│ - Admin API │
└─────────────────────────────────────────────┘
```
## 🔧 Flux d'authentification
1. **Utilisateur accède au frontend** : http://localhost:8080
2. **Frontend redirige vers Keycloak** : http://localhost:8180/realms/lions-user-manager
3. **Utilisateur se connecte** : testuser / test123
4. **Keycloak retourne un token**
5. **Frontend est authentifié** et peut appeler le backend
6. **Backend utilise Admin API** pour gérer Keycloak (admin/admin)
## ❌ Ce qui NE fonctionnera PAS
### ❌ http://localhost:8081 (racine du backend)
**Erreur** : Forbidden ou 404
**Raison** : Le backend est une API REST, il n'a pas de page d'accueil HTML.
**Solution** : Utilisez plutôt :
- http://localhost:8081/q/swagger-ui (interface graphique API)
- http://localhost:8081/q/dev (console dev Quarkus)
- http://localhost:8081/api/users?realm=lions-user-manager (endpoint API)
### ❌ http://localhost:8080/api/users
**Erreur** : 404
**Raison** : Les API sont sur le backend (port 8081), pas le frontend (8080).
**Solution** : http://localhost:8081/api/users?realm=lions-user-manager
## ✅ URLs correctes
### Frontend (8080)
- **Accueil** : http://localhost:8080
- **Login** : Automatiquement redirigé vers Keycloak
- **Pages protégées** : http://localhost:8080/pages/user-manager/users/list.xhtml
### Backend (8081)
- **Swagger UI** : http://localhost:8081/q/swagger-ui
- **Dev UI** : http://localhost:8081/q/dev
- **Health Check** : http://localhost:8081/q/health
- **API Users** : http://localhost:8081/api/users?realm=lions-user-manager
- **API Roles** : http://localhost:8081/api/roles/realm?realm=lions-user-manager
### Keycloak (8180)
- **Admin Console** : http://localhost:8180/admin
- **Account Console** : http://localhost:8180/realms/lions-user-manager/account
## 🔍 Diagnostic
### Le frontend ne démarre pas
```bash
# Vérifier qu'aucun processus n'utilise le port 8080
netstat -ano | findstr :8080
# Logs du frontend
cd lions-user-manager-client-quarkus-primefaces-freya
mvn quarkus:dev
```
### Le backend ne démarre pas
```bash
# Vérifier qu'aucun processus n'utilise le port 8081
netstat -ano | findstr :8081
# Logs du backend
cd lions-user-manager-server-impl-quarkus
mvn quarkus:dev
```
### Keycloak n'est pas accessible
```bash
# Vérifier le statut
curl http://localhost:8180/health
# Redémarrer si nécessaire
```
## 📝 Credentials
- **Keycloak Admin** : admin / admin
- **Utilisateur de test** : testuser / test123
- **Realm** : lions-user-manager
- **Client ID** : lions-user-manager-client
- **Client Secret** : client-secret-lions-2025
---
**Important** : Toujours démarrer dans cet ordre :
1. Keycloak (8180)
2. Backend (8081)
3. Frontend (8080)