From 4493901c93215fef6e76aec24646a3e4e2231b43 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 17 Mar 2023 10:04:33 +0100 Subject: [PATCH] Polishing. Remove superfluous dependencies. Fix Javadoc. Update documentation. Add missing import. See gh-761 Original pull request gh-765 --- pom.xml | 6 ------ spring-vault-core/pom.xml | 15 --------------- .../config/EnvironmentVaultConfiguration.java | 11 ++++++++--- ...onfigurationAwsIamAuthenticationUnitTests.java | 2 +- .../asciidoc/reference/imperative-template.adoc | 6 +++++- 5 files changed, 14 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index 7cdd77cb..def47b61 100644 --- a/pom.xml +++ b/pom.xml @@ -234,12 +234,6 @@ ${aws-java-sdk.version} true - - software.amazon.awssdk - sts - ${aws-java-sdk.version} - true - diff --git a/spring-vault-core/pom.xml b/spring-vault-core/pom.xml index b3750f05..f9e8d403 100644 --- a/spring-vault-core/pom.xml +++ b/spring-vault-core/pom.xml @@ -189,21 +189,6 @@ - - software.amazon.awssdk - sts - true - - - software.amazon.ion - ion-java - - - com.fasterxml.jackson.dataformat - jackson-dataformat-cbor - - - com.google.apis diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java index e5ab47b9..3d7d44cb 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java @@ -23,6 +23,7 @@ import java.util.stream.Collectors; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; @@ -47,7 +48,6 @@ import org.springframework.vault.support.SslConfiguration; import org.springframework.vault.support.SslConfiguration.KeyStoreConfiguration; import org.springframework.vault.support.VaultToken; import org.springframework.web.client.RestOperations; -import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; /** * Configuration using Spring's {@link org.springframework.core.env.Environment} to @@ -98,8 +98,8 @@ import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; * *
  • Authentication method: {@code vault.authentication} (defaults to {@literal TOKEN}, * supported authentication methods are: - * {@literal TOKEN, APPID, APPROLE, AWS_EC2, AZURE, CERT, CUBBYHOLE, KUBERNETES}, see - * {@link AuthenticationMethod})
  • + * {@literal TOKEN, APPID, APPROLE, AWS_EC2, AWS_IAM, AZURE, CERT, CUBBYHOLE, KUBERNETES}, + * see {@link AuthenticationMethod}) *
  • Token authentication *
      *
    • Vault Token: {@code vault.token}
    • @@ -130,6 +130,10 @@ import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; *
    • Identity Document URL: {@code vault.aws-ec2.identity-document} (defaults to * {@link AwsEc2AuthenticationOptions#DEFAULT_PKCS7_IDENTITY_DOCUMENT_URI})
    • *
    + *
  • AWS IAM authentication + *
      + *
    • Role: {@code vault.aws-iam.role} (since 3.0.2)
    • + *
    *
  • Azure MSI authentication *
      *
    • Azure MSI path: {@code vault.azure-msi.azure-path} (since 2.2.1, defaults to @@ -376,6 +380,7 @@ public class EnvironmentVaultConfiguration extends AbstractVaultConfiguration im } protected ClientAuthentication awsIamAuthentication() { + String role = getProperty("vault.aws-iam.role"); Assert.isTrue(StringUtils.hasText(role), "Vault AWS-IAM authentication: Role (vault.aws-iam.role) must not be empty"); diff --git a/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java index 10a87022..6980c670 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/config/EnvironmentVaultConfigurationAwsIamAuthenticationUnitTests.java @@ -29,7 +29,7 @@ import org.springframework.vault.authentication.AwsIamAuthentication; import org.springframework.vault.authentication.ClientAuthentication; /** - * Unit tests for {@link EnvironmentVaultConfiguration} with AppRole authentication. + * Unit tests for {@link EnvironmentVaultConfiguration} with AWS IAM authentication. * * @author Nick Tan */ diff --git a/src/main/asciidoc/reference/imperative-template.adoc b/src/main/asciidoc/reference/imperative-template.adoc index 0ed81cbc..d8a81260 100644 --- a/src/main/asciidoc/reference/imperative-template.adoc +++ b/src/main/asciidoc/reference/imperative-template.adoc @@ -178,7 +178,7 @@ vault.token=00000000-0000-0000-0000-000000000000 ** Truststore type: `vault.ssl.trust-store-type` (optional, typically `jks`, supports also `pem`) ** Enabled SSL/TLS protocols: `vault.ssl.enabled-protocols` (since 2.3.2, optional, protocols separated with comma) ** Enabled SSL/TLS cipher suites: `vault.ssl.enabled-cipher-suites` (since 2.3.2, optional, cipher suites separated with comma) -* Authentication method: `vault.authentication` (defaults to `TOKEN`, supported authentication methods are: `TOKEN`, `APPID`, `APPROLE`, `AWS_EC2`, `AZURE`, `CERT`, `CUBBYHOLE`, `KUBERNETES`) +* Authentication method: `vault.authentication` (defaults to `TOKEN`, supported authentication methods are: `TOKEN`, `APPID`, `APPROLE`, `AWS_EC2`, `AWS_IAM`, `AZURE`, `CERT`, `CUBBYHOLE`, `KUBERNETES`) **Authentication-specific property keys** @@ -206,6 +206,10 @@ Any other value is used with `StaticUserId`. * RoleId: `vault.aws-ec2.role-id` (*deprecated:* use `vault.aws-ec2.role` instead) * Identity Document URL: `vault.aws-ec2.identity-document` (defaults to `http://169.254.169.254/latest/dynamic/instance-identity/pkcs7`) +**<>** + +* Role: `vault.aws-iam.role` + **<>** * Azure MSI path: `vault.azure-msi.azure-path` (defaults to `azure`)