Task 1.6 - Configuration application.properties

- Configuration complète de la sécurité GBCM (JWT, mots de passe, verrouillage)
- Profils dev, test, et production configurés
- Génération des clés RSA pour JWT
- Création de application-local.properties pour développement local
- Ajout de la dépendance H2 pour les profils dev et test
- Correction de User.getRoleString() pour Quarkus Security JPA
- Correction des endpoints @FormParam avec @Consumes dans AuthResource et UserResource
- Correction des données de test import.sql (ajout colonne deleted)
- Documentation complète dans CONFIGURATION.md
- Application démarre avec succès en mode dev
This commit is contained in:
dahoud
2025-10-06 21:34:59 +00:00
parent 5ec5e538cc
commit d82269c713
8 changed files with 205 additions and 19 deletions

108
CONFIGURATION.md Normal file
View File

@@ -0,0 +1,108 @@
# Configuration GBCM Server
## Vue d'ensemble
Le serveur GBCM utilise Quarkus avec des profils de configuration pour différents environnements.
## Profils disponibles
### Profil par défaut (Production)
- Base de données PostgreSQL
- JWT avec clés RSA
- Logs au niveau WARN
- Sécurité renforcée
### Profil `dev` (Développement)
- Base de données H2 en mémoire
- Logs au niveau DEBUG
- Sécurité allégée (BCrypt cost=4)
- Rechargement automatique
### Profil `test` (Tests)
- Base de données H2 en mémoire
- Configuration optimisée pour les tests
- Sécurité minimale pour rapidité
### Profil `local` (Développement local)
- Configuration personnalisable
- Utilise `application-local.properties`
## Variables d'environnement importantes
### Base de données (Production)
```bash
DATABASE_URL=jdbc:postgresql://localhost:5432/gbcm_prod
DB_USERNAME=gbcm_prod_user
DB_PASSWORD=secure_password
```
### JWT (Production)
```bash
JWT_SECRET=your-super-secure-jwt-secret-key-256-bits-minimum
```
### Email (Production)
```bash
SMTP_USERNAME=your-smtp-username
SMTP_PASSWORD=your-smtp-password
```
## Configuration de sécurité
### Paramètres JWT
- `gbcm.security.jwt.access-token.duration`: Durée de vie des tokens d'accès (défaut: 1h)
- `gbcm.security.jwt.refresh-token.duration`: Durée de vie des refresh tokens (défaut: 7j)
- `gbcm.security.jwt.reset-token.duration`: Durée de vie des tokens de reset (défaut: 2h)
### Paramètres de mot de passe
- `gbcm.security.password.bcrypt-cost`: Coût BCrypt (défaut: 12)
- `gbcm.security.password.min-length`: Longueur minimale (défaut: 8)
- `gbcm.security.password.max-age`: Âge maximum (défaut: 90j)
### Paramètres de compte
- `gbcm.security.account.max-failed-attempts`: Tentatives max (défaut: 5)
- `gbcm.security.account.lockout-duration`: Durée de verrouillage (défaut: 30min)
## Démarrage rapide
### Développement avec H2
```bash
mvn quarkus:dev
```
### Développement avec configuration locale
```bash
mvn quarkus:dev -Dquarkus.profile=local
```
### Tests
```bash
mvn test
```
### Production
```bash
java -jar target/quarkus-app/quarkus-run.jar -Dquarkus.profile=prod
```
## URLs importantes
- Application: http://localhost:8081
- Swagger UI: http://localhost:8081/swagger
- Health Check: http://localhost:8081/health
- Metrics: http://localhost:8081/q/metrics
## Sécurité
⚠️ **Important**:
- Changez toujours `JWT_SECRET` en production
- Utilisez des mots de passe forts pour la base de données
- Configurez HTTPS en production
- Limitez les origines CORS en production
## Logs
Les logs sont configurés par niveau :
- `com.gbcm`: DEBUG en développement, INFO en production
- `org.hibernate.SQL`: DEBUG en développement seulement
- Root level: DEBUG en dev, WARN en production