From ba679d80e2845509cbecabfb726fd1eaa581dd94 Mon Sep 17 00:00:00 2001 From: Maksim Tereshin Date: Tue, 3 Dec 2024 14:50:19 +0100 Subject: [PATCH] Fix call to S3 --- .../main/java/org/micord/config/S3HttpConnection.java | 10 ++++------ .../org/micord/models/requests/S3ConnectionParams.java | 9 ++++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/config-data-executor/src/main/java/org/micord/config/S3HttpConnection.java b/config-data-executor/src/main/java/org/micord/config/S3HttpConnection.java index 616f698..dce260c 100644 --- a/config-data-executor/src/main/java/org/micord/config/S3HttpConnection.java +++ b/config-data-executor/src/main/java/org/micord/config/S3HttpConnection.java @@ -8,18 +8,16 @@ import javax.crypto.spec.SecretKeySpec; import java.net.URI; import java.net.http.HttpRequest; import java.nio.charset.StandardCharsets; +import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Base64; -/** - * @author Maksim Tereshin - */ public class S3HttpConnection { public static HttpRequest buildHttpRequest(S3Request request, String file) throws Exception { S3ConnectionParams connectionParams = request.getS3ConnectionParams(); - String host = connectionParams.getHost() + ":" + connectionParams.getPort(); + String host = connectionParams.getProtocol() + "://" + connectionParams.getHost() + ":" + connectionParams.getPort(); String s3Key = connectionParams.getS3Key(); String s3Secret = connectionParams.getS3Secret(); String method = connectionParams.getMethod().toUpperCase(); @@ -27,12 +25,12 @@ public class S3HttpConnection { String resource = "/" + file; String contentType = connectionParams.getContentType(); - String date = ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME); + String date = ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss'Z'")); String signature = generateSignature(method, contentType, date, resource, s3Secret); HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() - .uri(URI.create("http://" + host + resource)) + .uri(URI.create(host + resource)) .header("Date", date) .header("Content-Type", contentType) .header("Authorization", "AWS " + s3Key + ":" + signature); diff --git a/config-data-executor/src/main/java/org/micord/models/requests/S3ConnectionParams.java b/config-data-executor/src/main/java/org/micord/models/requests/S3ConnectionParams.java index 1699e48..642942e 100644 --- a/config-data-executor/src/main/java/org/micord/models/requests/S3ConnectionParams.java +++ b/config-data-executor/src/main/java/org/micord/models/requests/S3ConnectionParams.java @@ -3,14 +3,12 @@ package org.micord.models.requests; import jakarta.xml.bind.annotation.XmlElement; import lombok.Setter; -/** - * @author Maksim Tereshin - */ @Setter public class S3ConnectionParams { private String s3Key; private String s3Secret; + private String protocol; private String host; private String port; private String contentType; @@ -27,6 +25,11 @@ public class S3ConnectionParams { return s3Secret; } + @XmlElement(name = "Protocol") + public String getProtocol() { + return protocol; + } + @XmlElement(name = "Host") public String getHost() { return host;