github.com/qiniu/go-sdk/v7@v7.27.0/internal/clientv2/interceptor_anti_hijacking.go (about) 1 package clientv2 2 3 import ( 4 "net/http" 5 6 "github.com/qiniu/go-sdk/v7/storagev2/retrier" 7 ) 8 9 type antiHijackingInterceptor struct{} 10 11 func NewAntiHijackingInterceptor() Interceptor { 12 return &antiHijackingInterceptor{} 13 } 14 15 func (interceptor *antiHijackingInterceptor) Priority() InterceptorPriority { 16 return InterceptorPriorityAntiHijacking 17 } 18 19 func (interceptor *antiHijackingInterceptor) Intercept(req *http.Request, handler Handler) (response *http.Response, err error) { 20 response, err = handler(req) 21 if err != nil { 22 return 23 } 24 reqId := response.Header.Get("x-reqid") 25 log := response.Header.Get("x-log") 26 if reqId == "" && log == "" { 27 return nil, retrier.ErrMaliciousResponse 28 } 29 return 30 }