From 91d6de46cc72d29bd57c12813d36f8d429453784 Mon Sep 17 00:00:00 2001 From: duck Date: Wed, 25 Jan 2023 06:56:11 +0000 Subject: [PATCH] transport: Add OAuth Bearer Token HTTP transport authentication type (#5901) --- provider/http.go | 2 ++ util/transport/bearer.go | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 util/transport/bearer.go diff --git a/provider/http.go b/provider/http.go index fe10d16db..decba6a86 100644 --- a/provider/http.go +++ b/provider/http.go @@ -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: diff --git a/util/transport/bearer.go b/util/transport/bearer.go new file mode 100644 index 000000000..51e370fa5 --- /dev/null +++ b/util/transport/bearer.go @@ -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, + } +}