fix: Correction des ports frontend/backend

- Frontend: port 8080 (au lieu de 8081)
- Backend: port 8081
- Mise à jour de l'URL backend dans le frontend (8081)
- Correction des CORS pour inclure les deux ports

Résolution du conflit de ports qui empêchait le backend de démarrer.
This commit is contained in:
lionsdev
2025-12-04 23:22:20 +00:00
parent ee0bd2c2da
commit 2872ac3f94
4 changed files with 172 additions and 3 deletions

106
TEST_BACKEND.md Normal file
View File

@@ -0,0 +1,106 @@
# Test du Backend - Lions User Manager
## ⚠️ Important : Le port 8081 ne sert PAS de pages web !
Le message "Forbidden" sur `http://localhost:8081/` est **NORMAL**.
Le backend est une **API REST** uniquement, il n'a pas de page d'accueil HTML.
## ✅ URLs à tester à la place :
### 1. Swagger UI (Interface de documentation API)
```
http://localhost:8081/q/swagger-ui
```
C'est l'interface graphique pour tester toutes les API.
### 2. Health Check
```
http://localhost:8081/q/health
```
Vérifie que l'application tourne correctement.
### 3. Metrics
```
http://localhost:8081/q/metrics
```
Statistiques de l'application.
### 4. API Users (endpoint principal)
```bash
# Lister les utilisateurs du realm lions-user-manager
curl "http://localhost:8081/api/users?realm=lions-user-manager"
# Ou dans votre navigateur :
http://localhost:8081/api/users?realm=lions-user-manager
```
### 5. Dev UI (Console de développement Quarkus)
```
http://localhost:8081/q/dev
```
## 🔧 Test complet avec curl
```bash
# 1. Health check
curl http://localhost:8081/q/health
# 2. Lister les utilisateurs
curl "http://localhost:8081/api/users?realm=lions-user-manager"
# 3. Lister les rôles
curl "http://localhost:8081/api/roles/realm?realm=lions-user-manager"
# 4. Health check Keycloak
curl http://localhost:8081/api/health/keycloak
```
## 🌐 Pour l'interface WEB, utilisez le frontend :
L'interface web JSF/PrimeFaces est sur le **port 8080** :
```
http://localhost:8080
```
C'est là que vous verrez les pages XHTML et pourrez vous connecter avec `testuser/test123`.
## 📊 Architecture
```
┌─────────────────────┐
│ Frontend (8080) │ ← Pages web XHTML/PrimeFaces
│ Interface utilisateur
└──────────┬──────────┘
│ Appelle les API
┌─────────────────────┐
│ Backend (8081) │ ← API REST uniquement (pas de pages web)
│ Endpoints REST │ C'est pour ça que / retourne Forbidden
└─────────────────────┘
```
## ❓ Pourquoi "Forbidden" ?
Le backend Quarkus est configuré avec :
```properties
quarkus.oidc.enabled=false
quarkus.security.jaxrs.deny-unannotated-endpoints=false
```
Mais il n'y a **aucun endpoint** défini pour `/` (la racine).
Les seuls endpoints disponibles sont :
- `/api/*` - API REST
- `/q/*` - Endpoints Quarkus (dev UI, health, metrics, swagger)
## ✅ Solution
**Utilisez Swagger UI** pour tester l'API :
```
http://localhost:8081/q/swagger-ui
```
Ou testez directement les endpoints API avec curl ou votre navigateur.

49
get-client-secret.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
# Script pour récupérer le secret du client Keycloak
KEYCLOAK_URL="http://localhost:8180"
REALM="lions-user-manager"
# 1. Obtenir le token admin
TOKEN=$(curl -s -X POST "${KEYCLOAK_URL}/realms/master/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=admin" \
-d "password=admin" \
-d "grant_type=password" \
-d "client_id=admin-cli" | grep -o '"access_token":"[^"]*' | cut -d'"' -f4)
if [ -z "$TOKEN" ]; then
echo "Erreur: Impossible d'obtenir le token"
exit 1
fi
# 2. Récupérer tous les clients
CLIENTS=$(curl -s -X GET "${KEYCLOAK_URL}/admin/realms/${REALM}/clients" \
-H "Authorization: Bearer ${TOKEN}")
# 3. Extraire l'ID du client
CLIENT_ID=$(echo "$CLIENTS" | grep -B 5 '"clientId":"lions-user-manager-client"' | grep '"id"' | head -1 | grep -o '"id":"[^"]*' | cut -d'"' -f4)
if [ -z "$CLIENT_ID" ]; then
echo "Erreur: Client non trouvé"
exit 1
fi
echo "Client ID interne: $CLIENT_ID"
# 4. Récupérer le secret du client
SECRET=$(curl -s -X GET "${KEYCLOAK_URL}/admin/realms/${REALM}/clients/${CLIENT_ID}/client-secret" \
-H "Authorization: Bearer ${TOKEN}" | grep -o '"value":"[^"]*' | cut -d'"' -f4)
if [ -z "$SECRET" ]; then
echo "Erreur: Secret non trouvé"
exit 1
fi
echo ""
echo "=== Secret du client lions-user-manager-client ==="
echo "Secret: $SECRET"
echo ""
echo "Mettre à jour dans application-dev.properties:"
echo "quarkus.oidc.credentials.secret=$SECRET"

View File

@@ -3,7 +3,7 @@ quarkus.application.name=lions-user-manager-client
quarkus.application.version=1.0.0 quarkus.application.version=1.0.0
# Configuration HTTP # Configuration HTTP
quarkus.http.port=8081 quarkus.http.port=8080
quarkus.http.host=0.0.0.0 quarkus.http.host=0.0.0.0
quarkus.http.root-path=/ quarkus.http.root-path=/
quarkus.http.so-reuse-port=true quarkus.http.so-reuse-port=true
@@ -45,7 +45,7 @@ primefaces.AUTO_UPDATE=false
primefaces.CACHE_PROVIDER=org.primefaces.cache.DefaultCacheProvider primefaces.CACHE_PROVIDER=org.primefaces.cache.DefaultCacheProvider
# Configuration Backend Lions User Manager # Configuration Backend Lions User Manager
lions.user.manager.backend.url=${LIONS_USER_MANAGER_BACKEND_URL:http://localhost:8080} lions.user.manager.backend.url=${LIONS_USER_MANAGER_BACKEND_URL:http://localhost:8081}
# Configuration REST Client # Configuration REST Client
quarkus.rest-client."lions-user-manager-api".url=${lions.user.manager.backend.url} quarkus.rest-client."lions-user-manager-api".url=${lions.user.manager.backend.url}
@@ -82,7 +82,7 @@ quarkus.http.auth.permission.authenticated.policy=authenticated
# CORS (si nécessaire pour développement) # CORS (si nécessaire pour développement)
quarkus.http.cors=true quarkus.http.cors=true
quarkus.http.cors.origins=${CORS_ORIGINS:http://localhost:8081,http://localhost:8086} quarkus.http.cors.origins=${CORS_ORIGINS:http://localhost:8080,http://localhost:8081}
quarkus.http.cors.methods=GET,POST,PUT,DELETE,OPTIONS quarkus.http.cors.methods=GET,POST,PUT,DELETE,OPTIONS
quarkus.http.cors.headers=Accept,Authorization,Content-Type,X-Requested-With quarkus.http.cors.headers=Accept,Authorization,Content-Type,X-Requested-With

14
test-auth.sh Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
echo "Test d'authentification avec le client lions-user-manager-client"
echo ""
curl -X POST "http://localhost:8180/realms/lions-user-manager/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=lions-user-manager-client" \
-d "client_secret=client-secret-lions-2025" \
-d "username=testuser" \
-d "password=test123" \
-d "grant_type=password"
echo ""