0

The idea is to make spring-vault use feign client (to take advantage of hystrix's fault tolerance capabilities).

  1. Does spring-vault support feign client? or is there a work around if not supported out of the box
  2. Or is there away to route spring-vault calls through feign client (sort of a proxy mode).

Following code snippet is an example for spring-vault config ; VaultTemplate bean is used for the vault operations

public VaultEndpoint vaultEndpoint() {

    try {
        return VaultEndpoint.from(new URI(vaultUri));
    } catch (URISyntaxException uriSyntaxException) {
        throw new IllegalStateException("Some Exception", uriSyntaxException);
    }
}
@Bean
public VaultTemplate vaultTemplate() {
    return new VaultTemplate(vaultEndpoint(), httpRequestFactory(), sessionManager());
}

@Bean
public VaultTransitOperations vaultTransitOperations() {
    return vaultTemplate().opsForTransit(transitPath);
}

@Bean
public ClientHttpRequestFactory httpRequestFactory() {
    ClientOptions clientOptions = new ClientOptions(1000, 1000);

    return ClientHttpRequestFactoryFactory.create(clientOptions, SslConfiguration.NONE);
}

@Bean
public RestOperations vaultClient() {
    return VaultClients.createRestTemplate(vaultEndpoint(), httpRequestFactory());
}

1 Answers1

0

There's no feign (openfeign) support in Spring Vault but we're supporting various HTTP clients by accepting ClientHttpRequestFactory.

You can get fault tolerance with Ribbon by providing a RibbonClientHttpRequestFactory using Spring Cloud Netflix.

mp911de
  • 17,546
  • 2
  • 55
  • 95