Documentation
¶
Overview ¶
Package httpx contains small HTTP safety helpers for broker proxies.
Index ¶
- Variables
- func CopyHeaders(dst http.Header, src http.Header, drop HeaderDropper)
- func DecodeJSON(reader io.Reader, limit int64, out any, closed bool) error
- func HopByHopHeader(key string) bool
- func NoStore(header http.Header)
- func ProxyRequestHeader(key string) bool
- func ProxyResponseHeader(key string) bool
- func ReadLimited(reader io.Reader, limit int64) ([]byte, error)
- func RequestCredentialHeader(key string) bool
- func ResponseCredentialHeader(key string) bool
- func RewrittenBodyHeader(key string) bool
- type HeaderDropper
Constants ¶
This section is empty.
Variables ¶
var ErrBodyTooLarge = errors.New("body too large")
ErrBodyTooLarge is returned when ReadLimited sees more bytes than allowed.
Functions ¶
func CopyHeaders ¶
func CopyHeaders(dst http.Header, src http.Header, drop HeaderDropper)
CopyHeaders copies src into dst unless drop returns true for the header name.
func DecodeJSON ¶ added in v0.2.0
DecodeJSON reads and strictly decodes one bounded JSON value. Set closed for request schemas that reject unknown object fields.
func HopByHopHeader ¶
HopByHopHeader reports whether key is unsafe to forward through a proxy.
func ProxyRequestHeader ¶
ProxyRequestHeader reports whether key should be dropped before upstreaming.
func ProxyResponseHeader ¶
ProxyResponseHeader reports whether key should be dropped before responding.
func ReadLimited ¶
ReadLimited reads reader up to limit bytes and fails if one more byte exists.
func RequestCredentialHeader ¶
RequestCredentialHeader reports whether key carries client credentials.
func ResponseCredentialHeader ¶
ResponseCredentialHeader reports whether key may expose upstream auth state.
func RewrittenBodyHeader ¶
RewrittenBodyHeader reports whether key is invalid after rewriting a body.
Types ¶
type HeaderDropper ¶
HeaderDropper reports whether a header should be omitted when copied.
func DropAny ¶
func DropAny(droppers ...HeaderDropper) HeaderDropper
DropAny combines multiple header drop predicates.