'Getting exception GcpIamAuthentication ClientAuthentication must implement AuthenticationStepsFactory
I am using spring-boot-parent 2.6.3 and spring-vault-config 3.1.0
<spring-vault-config.version>3.1.0</spring-vault-config.version>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-vault-config</artifactId>
<version>${spring-vault-config.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-iam</artifactId>
<version>v1-rev316-1.25.0</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client</artifactId>
<version>1.33.0</version>
</dependency>
bootstrap.yml
spring:
config:
activate:
on-profile: dev
cloud:
vault:
uri: https://vault url
namespace: <namespace>
authentication: GCP_IAM
fail-fast: true
connection-timeout: 3000
read-timeout: 120000
generic:
enabled: true
profile-separator: '/'
backend: kv
default-context: appName
application-name: appName
config:
order: -1000
gcp-iam:
role: dev-role
project-id: <project-id>
service-account-id: <service-accoutn-iam.gserviceaccount.com>
enabled: true
I am trying to connect to Vault using GCP_IAM authentication and provided service account, iam role and project details. When I start the spring boot application from my GKE cluster, I am getting the following error:
"Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reactiveVaultTemplate' defined in class path resource [org/springframework/cloud/vault/config/VaultReactiveBootstrapConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.vault.core.ReactiveVaultTemplate]: Factory method 'reactiveVaultTemplate' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reactiveVaultSessionManager' defined in class path resource [org/springframework/cloud/vault/config/VaultReactiveBootstrapConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.vault.authentication.ReactiveSessionManager]: Factory method 'reactiveVaultSessionManager' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'vaultTokenSupplier' defined in class path resource [org/springframework/cloud/vault/config/VaultReactiveBootstrapConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.vault.authentication.VaultTokenSupplier]: Factory method 'vaultTokenSupplier' threw exception; nested exception is java.lang.IllegalStateException: Cannot construct VaultTokenSupplier from org.springframework.vault.authentication.GcpIamAuthentication@16a9eb2e. ClientAuthentication must implement AuthenticationStepsFactory or be TokenAuthentication"
Can you please help me resolve this issue?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
