github.com/qiniu/go-sdk/v7@v7.27.0/linking/util.go (about)

     1  package linking
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/qiniu/go-sdk/v7/auth"
     7  )
     8  
     9  // ---------------------------------------------------------------------------------------
    10  
    11  type transport struct {
    12  	http.RoundTripper
    13  	mac *auth.Credentials
    14  }
    15  
    16  func newTransport(mac *auth.Credentials, tr http.RoundTripper) *transport {
    17  	if tr == nil {
    18  		tr = http.DefaultTransport
    19  	}
    20  	return &transport{tr, mac}
    21  }
    22  
    23  func (t *transport) RoundTrip(req *http.Request) (resp *http.Response, err error) {
    24  	token, err := t.mac.SignRequestV2(req)
    25  	if err != nil {
    26  		return
    27  	}
    28  	req.Header.Set("Authorization", "Qiniu "+token)
    29  	return t.RoundTripper.RoundTrip(req)
    30  }