1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
package auth
import "net/http"
// Auth implement methods required for authentication.
// Valid authentication are currently a token or no auth.
type Auth interface {
// Headers returns headers that must be add to the http request
Headers() http.Header
// AnonymizedHeaders returns an anonymised version of Headers()
// This method could be use for logging purpose.
AnonymizedHeaders() http.Header
}
type headerAnonymizer func(header http.Header) http.Header
var headerAnonymizers = []headerAnonymizer{
AnonymizeTokenHeaders,
AnonymizeJWTHeaders,
}
func AnonymizeHeaders(headers http.Header) http.Header {
for _, anonymizer := range headerAnonymizers {
headers = anonymizer(headers)
}
return headers
}
|