feat(vault): Add headers to client interface

This commit is contained in:
Louis Ruch committed 2024-04-11 09:08:49 -07:00
1 parent 0cfca44cf5
commit 2e6edb843d
2 files changed
+33 -1

No files matched your search

+6
View File
@@ -30,6 +30,7 @@ type vaultClient interface {
get(context.Context, string) (*vault.Secret, error)
post(context.Context, string, []byte) (*vault.Secret, error)
capabilities(context.Context, []string) (pathCapabilities, error)
headers(ctx context.Context) (http.Header, error)
}
var vaultClientFactoryFn = vaultClientFactory
@@ -270,3 +271,8 @@ func (c *client) capabilities(ctx context.Context, paths []string) (pathCapabili
return newPathCapabilities(res), nil
}
// headers returns the underlying Vault Client http headers
func (c *client) headers(_ context.Context) (http.Header, error) {
return c.cl.Headers(), nil
}
+27 -1
View File
@@ -89,7 +89,9 @@ func Test_newClient(t *testing.T) {
require.NoError(err)
assert.NotNil(client)
corIdHeader := client.cl.Headers().Get(globals.CorrelationIdKey)
headers, err := client.headers(context.Background())
require.NoError(err)
corIdHeader := headers.Get(globals.CorrelationIdKey)
assert.Equal(tt.wantCorId, corIdHeader)
})
}
@@ -314,3 +316,27 @@ func TestClient_revokeLease(t *testing.T) {
// verify the database credentials no longer work
assert.Error(testDatabase.ValidateCredential(t, cred))
}
func Test_headers(t *testing.T) {
t.Parallel()
ctx := context.Background()
v := NewTestVaultServer(t)
clientConfig := &clientConfig{
Addr: v.Addr,
Token: TokenSecret(v.RootToken),
}
client, err := newClient(ctx, clientConfig)
require.NoError(t, err)
assert.NotNil(t, client)
// Add header to underlying vault client
client.cl.AddHeader("test-header", "test-header-value")
// Get headers from client
headers, err := client.headers(context.Background())
require.NoError(t, err)
got := headers.Get("test-header")
assert.Equal(t, "test-header-value", got)
}