Compare commits

...

13 Commits

Author SHA1 Message Date
Vincent Guillet
00208f08c9 Merge remote-tracking branch 'origin/dev'
merge
2025-12-05 15:28:32 +01:00
b79068623f Update jenkinsfile 2025-12-05 14:27:59 +00:00
Vincent Guillet
fd538f376f Merge branch 'dev' 2025-12-05 15:14:50 +01:00
Vincent Guillet
3eed3d251f Refactor CORS configuration to use allowed origins and enhance header handling 2025-12-05 15:14:16 +01:00
Vincent Guillet
cefb3c54c3 Merge remote-tracking branch 'origin/dev'
Merge from dev
2025-12-05 14:58:32 +01:00
7dcc85ac95 Update api/src/main/java/fr/gameovergne/api/controller/auth/AuthController.java 2025-12-05 13:57:42 +00:00
79bd33fe41 Merge pull request 'merge from dev' (#1) from dev into main
Reviewed-on: #1
2025-12-05 13:43:04 +00:00
ec9eb0dc7d Update api/src/main/java/fr/gameovergne/api/config/SecurityConfig.java 2025-12-05 13:40:48 +00:00
01cafd5904 Update docker-compose.prod.yml 2025-12-05 13:35:48 +00:00
321e2fd546 Update jenkinsfile 2025-12-05 13:27:16 +00:00
696e0ac817 Update jenkinsfile 2025-12-05 13:26:43 +00:00
888ddc1362 Update jenkinsfile 2025-12-05 13:24:13 +00:00
3026f0a13f Update jenkinsfile 2025-12-05 13:23:58 +00:00
4 changed files with 40 additions and 29 deletions

View File

@@ -61,16 +61,26 @@ public class SecurityConfig {
@Bean @Bean
public CorsConfigurationSource corsConfigurationSource() { public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration config = new CorsConfiguration(); CorsConfiguration config = new CorsConfiguration();
config.setAllowedOriginPatterns(Arrays.asList(
"http://localhost:4200", // IMPORTANT : origins explicites, sans path
"http://127.0.0.1:4200", config.setAllowedOrigins(Arrays.asList(
"https://dev.vincent-guillet.fr" "http://localhost:4200",
)); "http://127.0.0.1:4200",
config.setAllowedMethods(Arrays.asList("GET","POST","PUT","DELETE","OPTIONS")); "https://dev.vincent-guillet.fr",
config.setAllowedHeaders(Arrays.asList("Authorization","Content-Type","Accept")); "https://projets.vincent-guillet.fr"
config.setExposedHeaders(Arrays.asList("Authorization")); ));
config.setAllowCredentials(true); config.setAllowCredentials(true);
// Autoriser tous les headers côté requête (plus robuste)
config.setAllowedHeaders(Arrays.asList("*"));
// Autoriser les méthodes classiques
config.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS"));
// Headers que le client *voit* dans la réponse
config.setExposedHeaders(Arrays.asList("Authorization", "Content-Type"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config); source.registerCorsConfiguration("/**", config);
return source; return source;

View File

@@ -17,12 +17,6 @@ import java.util.Arrays;
@RestController @RestController
@RequestMapping("/api/auth") @RequestMapping("/api/auth")
@CrossOrigin(
origins = "https://dev.vincent-guillet.fr",
allowCredentials = "true",
allowedHeaders = "*",
methods = {RequestMethod.GET, RequestMethod.POST, RequestMethod.OPTIONS}
)
public class AuthController { public class AuthController {
private final AuthService authService; private final AuthService authService;

View File

@@ -10,6 +10,8 @@ services:
MYSQL_PASSWORD: gameovergne MYSQL_PASSWORD: gameovergne
volumes: volumes:
- ./mysql-data-prod:/var/lib/mysql - ./mysql-data-prod:/var/lib/mysql
ports:
- "3366:3306"
networks: networks:
- gameovergne - gameovergne
restart: unless-stopped restart: unless-stopped

View File

@@ -2,12 +2,12 @@ pipeline {
agent none agent none
environment { environment {
REGISTRY = 'registry.vincent-guillet.fr' REGISTRY = 'registry.vincent-guillet.fr'
API_IMAGE_DEV = "${REGISTRY}/gameovergne-api:dev-latest" API_IMAGE_DEV = "${REGISTRY}/gameovergne-api:dev-latest"
CLIENT_IMAGE_DEV= "${REGISTRY}/gameovergne-client:dev-latest" CLIENT_IMAGE_DEV = "${REGISTRY}/gameovergne-client:dev-latest"
API_IMAGE_PROD = "${REGISTRY}/gameovergne-api:prod-latest" API_IMAGE_PROD = "${REGISTRY}/gameovergne-api:prod-latest"
CLIENT_IMAGE_PROD = "${REGISTRY}/gameovergne-client:prod-latest" CLIENT_IMAGE_PROD = "${REGISTRY}/gameovergne-client:prod-latest"
COMPOSE_PROJECT = 'gameovergne-app' COMPOSE_PROJECT = 'gameovergne-app'
} }
stages { stages {
@@ -48,7 +48,6 @@ pipeline {
} }
// ----- Push vers registry ----- // ----- Push vers registry -----
// Si tu as des credentials, tu peux les utiliser ici via withCredentials
sh """ sh """
echo "=== Push images vers ${REGISTRY} ===" echo "=== Push images vers ${REGISTRY} ==="
docker push ${API_IMAGE} docker push ${API_IMAGE}
@@ -75,11 +74,14 @@ pipeline {
echo "=== [DEV] Nettoyage anciens conteneurs ===" echo "=== [DEV] Nettoyage anciens conteneurs ==="
docker rm -f gameovergne-api gameovergne-client 2>/dev/null || true docker rm -f gameovergne-api gameovergne-client 2>/dev/null || true
echo "=== [DEV] docker-compose down ===" echo "=== [DEV] docker compose down ==="
docker-compose -f docker-compose.dev.yml down -v || true docker compose -f docker-compose.dev.yml down -v || true
echo "=== [DEV] docker-compose up ===" echo "=== [DEV] docker compose pull ==="
docker-compose -f docker-compose.dev.yml up -d mysql spring angular docker compose -f docker-compose.dev.yml pull
echo "=== [DEV] docker compose up (force recreate) ==="
docker compose -f docker-compose.dev.yml up -d --force-recreate mysql spring angular
""" """
} }
} }
@@ -103,11 +105,14 @@ pipeline {
echo "=== [PROD] Nettoyage anciens conteneurs ===" echo "=== [PROD] Nettoyage anciens conteneurs ==="
docker rm -f gameovergne-api-prod gameovergne-client-prod 2>/dev/null || true docker rm -f gameovergne-api-prod gameovergne-client-prod 2>/dev/null || true
echo "=== [PROD] docker-compose down ===" echo "=== [PROD] docker compose down ==="
docker-compose -f docker-compose.prod.yml down -v || true docker compose -f docker-compose.prod.yml down || true
echo "=== [PROD] docker-compose up ===" echo "=== [PROD] docker compose pull ==="
docker-compose -f docker-compose.prod.yml up -d mysql spring angular docker compose -f docker-compose.prod.yml pull
echo "=== [PROD] docker compose up (force recreate) ==="
docker compose -f docker-compose.prod.yml up -d --force-recreate mysql spring angular
""" """
} }
} }