transport: Add OAuth Bearer Token HTTP transport authentication type (#5901)

This commit is contained in:
duck 2023-01-25 06:56:11 +00:00 • committed by GitHub
parent a0be402251
commit 91d6de46cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 0 deletions

View file

@ -136,6 +136,8 @@ func (p *HTTP) WithAuth(typ, user, password string) (*HTTP, error) {
log.Redact(basicAuth)
p.Client.Transport = transport.BasicAuth(user, password, p.Client.Transport)
case "bearer":
p.Client.Transport = transport.BearerAuth(password, p.Client.Transport)
case "digest":
p.Client.Transport = digest.NewTransport(user, password, p.Client.Transport)
default:

15
util/transport/bearer.go Normal file
View file

@ -0,0 +1,15 @@
package transport
import (
"net/http"
)
// BearerAuth creates an HTTP transport performing HTTP authorization using an OAuth 2.0 Bearer Token
func BearerAuth(token string, base http.RoundTripper) http.RoundTripper {
return &Decorator{
Decorator: DecorateHeaders(map[string]string{
"Authorization": "Bearer " + token,
}),
Base: base,
}
}