- 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
109 lines
2.7 KiB
Markdown
109 lines
2.7 KiB
Markdown
# 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
|