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:
212
README_PORTS.md
Normal file
212
README_PORTS.md
Normal 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)
|
||||||
Reference in New Issue
Block a user