code: func (t *UAAAuthentication) Make(request *http.Request, passedResponse *uaa.Response) error {
  	if t.client == nil {
  		return t.connection.Make(request, passedResponse)
  	}
  
  	var err error
  	var rawRequestBody []byte
  
  	if request.Body != nil {
  		rawRequestBody, err = ioutil.ReadAll(request.Body)
  		defer request.Body.Close()
  		if err != nil {
  			return err
  		}
  
  		request.Body = ioutil.NopCloser(bytes.NewBuffer(rawRequestBody))
  
  		if skipAuthenticationHeader(request, rawRequestBody) {
  			return t.connection.Make(request, passedResponse)
  		}
  	}
  
  	request.Header.Set("Authorization", t.cache.AccessToken())
  
  	err = t.connection.Make(request, passedResponse)
  	if _, ok := err.(uaa.InvalidAuthTokenError); ok {
  		tokens, refreshErr := t.client.RefreshAccessToken(t.cache.RefreshToken())
  		if refreshErr != nil {
  			return refreshErr
  		}
  
  		t.cache.SetAccessToken(tokens.AuthorizationToken())
  		t.cache.SetRefreshToken(tokens.RefreshToken)
  
  		if rawRequestBody != nil {
  			request.Body = ioutil.NopCloser(bytes.NewBuffer(rawRequestBody))
  		}
  		request.Header.Set("Authorization", t.cache.AccessToken())
  		return t.connection.Make(request, passedResponse)
  	}
  
  	return err
  }
docs: // Make adds authentication headers to the passed in request and then calls the
  // wrapped connection's Make