diff --git a/docs/src/main/asciidoc/authentication.adoc b/docs/src/main/asciidoc/authentication.adoc
index d5056ceb..f30a5ab4 100644
--- a/docs/src/main/asciidoc/authentication.adoc
+++ b/docs/src/main/asciidoc/authentication.adoc
@@ -353,7 +353,7 @@ If one is not supplied then the friendly name of the current IAM user will be us
* `server-name` sets the value to use for the `X-Vault-AWS-IAM-Server-ID` header preventing certain types of replay attacks.
* `endpoint-uri` sets the value to use for the AWS STS API used for the `iam_request_url` parameter.
-AWS-IAM requires the AWS Java SDK dependency (`com.amazonaws:aws-java-sdk-core`) as the authentication implementation uses AWS SDK types for credentials and request signing.
+AWS-IAM requires the AWS Java SDK v2 dependency (`software.amazon.awssdk:auth`) as the authentication implementation uses AWS SDK types for credentials and request signing.
See also: https://www.vaultproject.io/docs/auth/aws.html[Vault Documentation: Using the aws auth backend]
diff --git a/spring-cloud-vault-config/pom.xml b/spring-cloud-vault-config/pom.xml
index 1e5e30a2..5842a30b 100644
--- a/spring-cloud-vault-config/pom.xml
+++ b/spring-cloud-vault-config/pom.xml
@@ -96,24 +96,20 @@
io.projectreactor.netty
reactor-netty
true
+
+
+ io.projectreactor.netty
+ reactor-netty-http-brave
+
+
- com.amazonaws
- aws-java-sdk-core
+ software.amazon.awssdk
+ auth
+ 2.17.195
true
- 1.11.865
-
-
- software.amazon.ion
- ion-java
-
-
- com.fasterxml.jackson.dataformat
- jackson-dataformat-cbor
-
-
@@ -130,12 +126,6 @@
true
-
- com.google.cloud
- google-cloud-iamcredentials
- true
-
-
com.google.cloud
google-cloud-iamcredentials
diff --git a/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/ClientAuthenticationFactory.java b/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/ClientAuthenticationFactory.java
index 71635e70..e78966e1 100644
--- a/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/ClientAuthenticationFactory.java
+++ b/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/ClientAuthenticationFactory.java
@@ -22,9 +22,9 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.atomic.AtomicReference;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.DefaultAWSCredentialsProviderChain;
+import software.amazon.awssdk.auth.credentials.AwsCredentials;
+import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
+import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import org.springframework.beans.BeanUtils;
import org.springframework.boot.system.SystemProperties;
@@ -277,7 +277,7 @@ class ClientAuthenticationFactory {
AwsIamProperties awsIam = vaultProperties.getAwsIam();
- AWSCredentialsProvider credentialsProvider = AwsCredentialProvider.getAwsCredentialsProvider();
+ AwsCredentialsProvider credentialsProvider = AwsCredentialProvider.getAwsCredentialsProvider();
AwsIamAuthenticationOptionsBuilder builder = AwsIamAuthenticationOptions.builder();
@@ -429,32 +429,27 @@ class ClientAuthenticationFactory {
private static class AwsCredentialProvider {
- private static AWSCredentialsProvider getAwsCredentialsProvider() {
+ private static AwsCredentialsProvider getAwsCredentialsProvider() {
- DefaultAWSCredentialsProviderChain backingCredentialsProvider = DefaultAWSCredentialsProviderChain
- .getInstance();
+ DefaultCredentialsProvider backingCredentialsProvider = DefaultCredentialsProvider.create();
// Eagerly fetch credentials preventing lag during the first, actual login.
- AWSCredentials firstAccess = backingCredentialsProvider.getCredentials();
+ AwsCredentials firstAccess = backingCredentialsProvider.resolveCredentials();
- AtomicReference once = new AtomicReference<>(firstAccess);
+ AtomicReference once = new AtomicReference<>(firstAccess);
- return new AWSCredentialsProvider() {
+ return new AwsCredentialsProvider() {
@Override
- public AWSCredentials getCredentials() {
+ public AwsCredentials resolveCredentials() {
if (once.compareAndSet(firstAccess, null)) {
return firstAccess;
}
- return backingCredentialsProvider.getCredentials();
+ return backingCredentialsProvider.resolveCredentials();
}
- @Override
- public void refresh() {
- backingCredentialsProvider.refresh();
- }
};
}
diff --git a/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/config/VaultBootstrapPropertySourceConfigurationTests.java b/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/config/VaultBootstrapPropertySourceConfigurationTests.java
index 5c119041..1b7946f2 100644
--- a/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/config/VaultBootstrapPropertySourceConfigurationTests.java
+++ b/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/config/VaultBootstrapPropertySourceConfigurationTests.java
@@ -51,14 +51,14 @@ public class VaultBootstrapPropertySourceConfigurationTests {
.withPropertyValues("spring.cloud.vault.kv.enabled=false",
"spring.cloud.vault.config.lifecycle.expiry-threshold=5m",
"spring.cloud.vault.config.lifecycle.min-renewal=6m",
- "spring.cloud.vault.config.lifecycle.lease-endpoints=SysLeases",
+ "spring.cloud.vault.config.lifecycle.lease-endpoints=Leases",
"spring.cloud.bootstrap.enabled=true")
.run(context -> {
SecretLeaseContainer container = context.getBean(SecretLeaseContainer.class);
verify(container).setExpiryThreshold(Duration.ofMinutes(5));
verify(container).setMinRenewal(Duration.ofMinutes(6));
- verify(container).setLeaseEndpoints(LeaseEndpoints.SysLeases);
+ verify(container).setLeaseEndpoints(LeaseEndpoints.Leases);
});
}
diff --git a/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/util/TestRestTemplateFactory.java b/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/util/TestRestTemplateFactory.java
index eace8066..68e3ad29 100644
--- a/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/util/TestRestTemplateFactory.java
+++ b/spring-cloud-vault-config/src/test/java/org/springframework/cloud/vault/util/TestRestTemplateFactory.java
@@ -22,9 +22,9 @@ import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.util.Assert;
+import org.springframework.vault.client.ClientHttpRequestFactoryFactory;
import org.springframework.vault.client.VaultClients;
import org.springframework.vault.client.VaultEndpoint;
-import org.springframework.vault.config.ClientHttpRequestFactoryFactory;
import org.springframework.vault.support.ClientOptions;
import org.springframework.vault.support.SslConfiguration;
import org.springframework.web.client.RestTemplate;
diff --git a/spring-cloud-vault-dependencies/pom.xml b/spring-cloud-vault-dependencies/pom.xml
index 4bf02d1f..d83615ae 100644
--- a/spring-cloud-vault-dependencies/pom.xml
+++ b/spring-cloud-vault-dependencies/pom.xml
@@ -20,7 +20,7 @@
Spring Cloud Vault Dependencies
- 2.3.2
+ 3.0.0-SNAPSHOT