| 302 | } |
| 303 | |
| 304 | func (rt *bearerAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { |
| 305 | if len(req.Header.Get("Authorization")) != 0 { |
| 306 | return rt.rt.RoundTrip(req) |
| 307 | } |
| 308 | |
| 309 | req = utilnet.CloneRequest(req) |
| 310 | token := rt.bearer |
| 311 | if rt.source != nil { |
| 312 | if refreshedToken, err := rt.source.Token(); err == nil { |
| 313 | token = refreshedToken.AccessToken |
| 314 | } |
| 315 | } |
| 316 | req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token)) |
| 317 | return rt.rt.RoundTrip(req) |
| 318 | } |
| 319 | |
| 320 | func (rt *bearerAuthRoundTripper) CancelRequest(req *http.Request) { |
| 321 | if canceler, ok := rt.rt.(requestCanceler); ok { |