Path: blob/dev/pkg/authprovider/authx/headers_auth.go
2843 views
package authx12import (3"net/http"45"github.com/projectdiscovery/retryablehttp-go"6)78var (9_ AuthStrategy = &HeadersAuthStrategy{}10)1112// HeadersAuthStrategy is a strategy for headers auth13type HeadersAuthStrategy struct {14Data *Secret15}1617// NewHeadersAuthStrategy creates a new headers auth strategy18func NewHeadersAuthStrategy(data *Secret) *HeadersAuthStrategy {19return &HeadersAuthStrategy{Data: data}20}2122// Apply applies the headers auth strategy to the request23// NOTE: This preserves exact header casing (e.g., barAuthToken stays as barAuthToken)24// This is useful for APIs that require case-sensitive header names25func (s *HeadersAuthStrategy) Apply(req *http.Request) {26for _, header := range s.Data.Headers {27req.Header[header.Key] = []string{header.Value}28}29}3031// ApplyOnRR applies the headers auth strategy to the retryable request32// NOTE: This preserves exact header casing (e.g., barAuthToken stays as barAuthToken)33// This is useful for APIs that require case-sensitive header names34func (s *HeadersAuthStrategy) ApplyOnRR(req *retryablehttp.Request) {35for _, header := range s.Data.Headers {36req.Header[header.Key] = []string{header.Value}37}38}394041