This is an automated email from the ASF dual-hosted git repository.

dgrove-oss pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new c160dddcd Upgrade aws-sdk to v2 along with a few other dependencies 
for vulns (#5579)
c160dddcd is described below

commit c160dddcd4a3f45fcafb3f45981b3e4df53d3d13
Author: Quinten Parker <[email protected]>
AuthorDate: Sat Jun 27 12:17:51 2026 -0700

    Upgrade aws-sdk to v2 along with a few other dependencies for vulns (#5579)
---
 common/scala/build.gradle                          |  6 ++---
 .../core/database/s3/CloudFrontSigner.scala        | 26 +++++++++++++---------
 settings.gradle                                    |  4 ++--
 tests/build.gradle                                 |  2 +-
 .../openwhisk/core/database/s3/S3Minio.scala       | 26 ++++++++++++----------
 5 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/common/scala/build.gradle b/common/scala/build.gradle
index 9f33d6375..61388c9ae 100644
--- a/common/scala/build.gradle
+++ b/common/scala/build.gradle
@@ -109,7 +109,7 @@ dependencies {
         exclude group: 'com.fasterxml.jackson.core'
         exclude group: 'com.fasterxml.jackson.dataformat'
     }
-    api "com.amazonaws:aws-java-sdk-cloudfront:1.12.792" // Upgraded to remove 
ion-java dependency (CVE-2024-21634)
+    api "software.amazon.awssdk:cloudfront:2.46.17" // Upgraded to remove 
ion-java dependency (CVE-2024-21634)
 
     api ("com.azure:azure-storage-blob:12.18.0") {
         exclude group: "com.azure", module: "azure-core-test"
@@ -159,8 +159,8 @@ dependencies {
 
         api("org.apache.commons:commons-lang3:3.18.0")
 
-        api("io.projectreactor.netty:reactor-netty-core:1.2.8")
-        api("io.projectreactor.netty:reactor-netty-http:1.2.8")
+        api("io.projectreactor.netty:reactor-netty-core:1.2.18")
+        api("io.projectreactor.netty:reactor-netty-http:1.2.18")
 
         api("io.grpc:grpc-api:${gradle.grpc.version}") {
             version { strictly gradle.grpc.version }
diff --git 
a/common/scala/src/main/scala/org/apache/openwhisk/core/database/s3/CloudFrontSigner.scala
 
b/common/scala/src/main/scala/org/apache/openwhisk/core/database/s3/CloudFrontSigner.scala
index 75ae94288..ffc5718d0 100644
--- 
a/common/scala/src/main/scala/org/apache/openwhisk/core/database/s3/CloudFrontSigner.scala
+++ 
b/common/scala/src/main/scala/org/apache/openwhisk/core/database/s3/CloudFrontSigner.scala
@@ -20,13 +20,10 @@ import java.io.ByteArrayInputStream
 import java.nio.charset.StandardCharsets.UTF_8
 import java.security.PrivateKey
 import java.time.Instant
-import java.util.Date
-
 import org.apache.pekko.http.scaladsl.model.Uri
-import com.amazonaws.auth.PEM
-import com.amazonaws.services.cloudfront.CloudFrontUrlSigner
-import com.amazonaws.services.cloudfront.util.SignerUtils
-import com.amazonaws.services.cloudfront.util.SignerUtils.Protocol
+import software.amazon.awssdk.services.cloudfront.CloudFrontUtilities
+import software.amazon.awssdk.services.cloudfront.internal.auth.Pem
+import software.amazon.awssdk.services.cloudfront.model.CannedSignerRequest
 
 import scala.concurrent.duration._
 
@@ -37,18 +34,25 @@ case class CloudFrontConfig(domainName: String,
 
 case class CloudFrontSigner(config: CloudFrontConfig) extends UrlSigner {
   private val privateKey = createPrivateKey(config.privateKey)
+  private val cloudFrontUtils = CloudFrontUtilities.create();
 
   override def getSignedURL(s3ObjectKey: String): Uri = {
-    val resourcePath = SignerUtils.generateResourcePath(Protocol.https, 
config.domainName, s3ObjectKey)
-    val date = Date.from(Instant.now().plusSeconds(config.timeout.toSeconds))
-    val url = CloudFrontUrlSigner.getSignedURLWithCannedPolicy(resourcePath, 
config.keyPairId, privateKey, date)
-    Uri(url)
+    val resourceUrl = s"https://${config.domainName}/$s3ObjectKey";
+    val date = Instant.now().plusSeconds(config.timeout.toSeconds)
+    val cannedRequest = CannedSignerRequest
+      .builder()
+      .resourceUrl(resourceUrl)
+      .privateKey(privateKey)
+      .keyPairId(config.keyPairId)
+      .expirationDate(date)
+      .build()
+    Uri(cloudFrontUtils.getSignedUrlWithCannedPolicy(cannedRequest).url())
   }
 
   override def toString: String = s"CloudFront Signer - ${config.domainName}"
 
   private def createPrivateKey(keyContent: String): PrivateKey = {
     val is = new ByteArrayInputStream(keyContent.getBytes(UTF_8))
-    PEM.readPrivateKey(is)
+    Pem.readPrivateKey(is)
   }
 }
diff --git a/settings.gradle b/settings.gradle
index 455c60c0d..778b13c18 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -104,9 +104,9 @@ gradle.ext.pekko_kafka = [version : '1.1.0']
 gradle.ext.pekko_http = [version : '1.1.0']
 gradle.ext.pekko_management = [version : '1.1.1']
 gradle.ext.pekko_grpc = [version : '1.1.1']
-gradle.ext.grpc = [version : '1.75.0']
+gradle.ext.grpc = [version : '1.82.1']
 
 gradle.ext.curator = [version : '5.7.0']
 gradle.ext.kube_client = [version: '4.10.3']
-gradle.ext.jackson = [version: '2.21.1']
+gradle.ext.jackson = [version: '2.21.4']
 gradle.ext.netty = [version : '4.1.135.Final']
diff --git a/tests/build.gradle b/tests/build.gradle
index 55a2f0800..3500d0250 100644
--- a/tests/build.gradle
+++ b/tests/build.gradle
@@ -254,7 +254,7 @@ dependencies {
     implementation 
"io.fabric8:kubernetes-server-mock:${gradle.kube_client.version}"
     implementation "org.rogach:scallop_${gradle.scala.depVersion}:3.3.2"
 
-    implementation "com.amazonaws:aws-java-sdk-s3:1.12.395"
+    implementation "software.amazon.awssdk:s3:2.46.17"
     implementation "com.microsoft.azure:azure-cosmos:3.7.6"
     implementation 'org.testcontainers:elasticsearch:1.17.6'
     implementation 'org.testcontainers:mongodb:1.17.1'
diff --git 
a/tests/src/test/scala/org/apache/openwhisk/core/database/s3/S3Minio.scala 
b/tests/src/test/scala/org/apache/openwhisk/core/database/s3/S3Minio.scala
index 6205237bc..1e79dc3f3 100644
--- a/tests/src/test/scala/org/apache/openwhisk/core/database/s3/S3Minio.scala
+++ b/tests/src/test/scala/org/apache/openwhisk/core/database/s3/S3Minio.scala
@@ -17,19 +17,19 @@
 
 package org.apache.openwhisk.core.database.s3
 
-import java.net.ServerSocket
-
+import java.net.{ServerSocket, URI}
 import actionContainers.ActionContainer
 import org.apache.pekko.actor.ActorSystem
-import com.amazonaws.auth.{AWSStaticCredentialsProvider, BasicAWSCredentials}
-import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration
-import com.amazonaws.services.s3.AmazonS3ClientBuilder
 import com.typesafe.config.ConfigFactory
 import common.{SimpleExec, StreamLogging}
 import org.scalatest.BeforeAndAfterAll
 import org.scalatest.flatspec.AnyFlatSpec
 import org.apache.openwhisk.common.{Logging, TransactionId}
 import org.apache.openwhisk.core.database.{AttachmentStore, DocumentSerializer}
+import software.amazon.awssdk.auth.credentials.{AwsBasicCredentials, 
StaticCredentialsProvider}
+import software.amazon.awssdk.regions.Region
+import software.amazon.awssdk.services.s3.S3Client
+import software.amazon.awssdk.services.s3.model.CreateBucketRequest
 
 import scala.concurrent.duration._
 import scala.reflect.ClassTag
@@ -89,14 +89,16 @@ trait S3Minio extends AnyFlatSpec with BeforeAndAfterAll 
with StreamLogging {
   }
 
   def createTestBucket(): Unit = {
-    val endpoint = new EndpointConfiguration(s"http://localhost:$port";, 
"us-west-2")
-    val client = AmazonS3ClientBuilder.standard
-      .withPathStyleAccessEnabled(true)
-      .withEndpointConfiguration(endpoint)
-      .withCredentials(new AWSStaticCredentialsProvider(new 
BasicAWSCredentials(accessKey, secretAccessKey)))
-      .build
+    val client = S3Client
+      .builder()
+      .forcePathStyle(true)
+      .endpointOverride(URI.create(s"http://localhost:$port";))
+      .region(Region.US_WEST_2)
+      
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey,
 secretAccessKey)))
+      .build()
 
-    org.apache.openwhisk.utils.retry(client.createBucket(bucket), 6, 
Some(1.minute))
+    org.apache.openwhisk.utils
+      .retry(client.createBucket((b: CreateBucketRequest.Builder) => 
b.bucket(bucket)), 6, Some(1.minute))
     println(s"Created bucket $bucket")
   }
 

Reply via email to