From b15c33129534ca036a302e224d484a3e492ff89c Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Wed, 3 Dec 2025 15:32:44 +0100 Subject: [PATCH] Refactor PrestashopClient to store basic auth header for improved readability and maintainability --- .../api/service/prestashop/PrestashopClient.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java b/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java index a06fe03..d9cc489 100644 --- a/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java +++ b/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java @@ -30,6 +30,7 @@ public class PrestashopClient { private final RestClient client; private final String baseUrl; + private final String basicAuthHeader; public PrestashopClient( @Value("${prestashop.base-url}") String baseUrl, @@ -40,8 +41,10 @@ public class PrestashopClient { String basicAuth = Base64.getEncoder() .encodeToString((apiKey + ":").getBytes(StandardCharsets.UTF_8)); + this.basicAuthHeader = "Basic " + basicAuth; // <--- mémorisé pour HttpURLConnection + this.client = RestClient.builder() - .defaultHeader(HttpHeaders.AUTHORIZATION, "Basic " + basicAuth) + .defaultHeader(HttpHeaders.AUTHORIZATION, basicAuthHeader) .build(); log.info("[PrestaShop] Base URL = {}", baseUrl); @@ -293,6 +296,7 @@ public class PrestashopClient { byte[] multipartBytes = baos.toByteArray(); + // -------- Envoi via HttpURLConnection -------- // -------- Envoi via HttpURLConnection -------- URL targetUrl = URI.create(url).toURL(); HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection(); @@ -300,6 +304,7 @@ public class PrestashopClient { conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); conn.setRequestProperty("Accept", "application/xml, text/xml, */*;q=0.1"); + conn.setRequestProperty("Authorization", basicAuthHeader); // Important : pas de chunked, on envoie une taille fixe conn.setFixedLengthStreamingMode(multipartBytes.length);