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