Merge pull request #699 from prymitive/v2-basic-auth

fix(backend): pass basic auth to the v2 API mapper
This commit is contained in:
Łukasz Mierzwa
2019-05-09 19:54:45 +01:00
committed by GitHub
2 changed files with 28 additions and 0 deletions

View File

@@ -20,3 +20,22 @@ func (hrt *headersRoundTripper) RoundTrip(r *http.Request) (*http.Response, erro
}
return hrt.inner.RoundTrip(r)
}
func SetAuth(inner http.RoundTripper, username string, password string) http.RoundTripper {
return &authRoundTripper{
inner: inner,
Username: username,
Password: password,
}
}
type authRoundTripper struct {
inner http.RoundTripper
Username string
Password string
}
func (art *authRoundTripper) RoundTrip(r *http.Request) (*http.Response, error) {
r.SetBasicAuth(art.Username, art.Password)
return art.inner.RoundTrip(r)
}

View File

@@ -18,12 +18,21 @@ import (
func newClient(uri string, headers map[string]string, httpTransport http.RoundTripper) *client.Alertmanager {
u, _ := url.Parse(uri)
transport := httptransport.New(u.Host, path.Join(u.Path, "/api/v2"), []string{u.Scheme})
if httpTransport != nil {
transport.Transport = mapper.SetHeaders(httpTransport, headers)
} else {
transport.Transport = mapper.SetHeaders(transport.Transport, headers)
}
if u.User.Username() != "" {
username := u.User.Username()
password, _ := u.User.Password()
transport.Transport = mapper.SetAuth(transport.Transport, username, password)
}
c := client.New(transport, nil)
return c
}