Merge pull request #58 from unistack-org/tls

allow to set http client
This commit is contained in:
Василий Толстов 2022-02-16 15:01:03 +03:00 committed by GitHub
commit f3b52ca8df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View File

@ -1,12 +1,19 @@
package vault package vault
import ( import (
"net/http"
"time" "time"
"github.com/hashicorp/vault/api" "github.com/hashicorp/vault/api"
"go.unistack.org/micro/v3/config" "go.unistack.org/micro/v3/config"
) )
type httpClientKey struct{}
func HTTPClient(c *http.Client) config.Option {
return config.SetOption(httpClientKey{}, c)
}
type configKey struct{} type configKey struct{}
func Config(cfg *api.Config) config.Option { func Config(cfg *api.Config) config.Option {

View File

@ -4,6 +4,7 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/http"
"time" "time"
"github.com/hashicorp/vault/api" "github.com/hashicorp/vault/api"
@ -46,6 +47,10 @@ func (c *vaultConfig) Init(opts ...config.Option) error {
cfg = v cfg = v
} }
if v, ok := c.opts.Context.Value(httpClientKey{}).(*http.Client); ok {
cfg.HttpClient = v
}
if v, ok := c.opts.Context.Value(timeoutKey{}).(time.Duration); ok { if v, ok := c.opts.Context.Value(timeoutKey{}).(time.Duration); ok {
cfg.Timeout = v cfg.Timeout = v
} }