transport

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2016 License: Apache-2.0, Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DebugWrappers

func DebugWrappers(rt http.RoundTripper) http.RoundTripper

DebugWrappers wraps a round tripper and logs based on the current log level.

func HTTPWrappersForConfig

func HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTripper, error)

HTTPWrappersForConfig wraps a round tripper with any relevant layered behavior from the config. Exposed to allow more clients that need HTTP-like behavior but then must hijack the underlying connection (like WebSocket or HTTP2 clients). Pure HTTP clients should use the RoundTripper returned from New.

func New

func New(config *Config) (http.RoundTripper, error)

New returns an http.RoundTripper that will provide the authentication or transport level security defined by the provided Config.

func NewBasicAuthRoundTripper added in v1.0.0

func NewBasicAuthRoundTripper(username, password string, rt http.RoundTripper) http.RoundTripper

NewBasicAuthRoundTripper will apply a BASIC auth authorization header to a request unless it has already been set.

func NewBearerAuthRoundTripper added in v1.0.0

func NewBearerAuthRoundTripper(bearer string, rt http.RoundTripper) http.RoundTripper

NewBearerAuthRoundTripper adds the provided bearer token to a request unless the authorization header has already been set.

func NewImpersonatingRoundTripper added in v1.1.0

func NewImpersonatingRoundTripper(impersonate string, delegate http.RoundTripper) http.RoundTripper

NewImpersonatingRoundTripper will add an Act-As header to a request unless it has already been set.

func NewUserAgentRoundTripper added in v1.0.0

func NewUserAgentRoundTripper(agent string, rt http.RoundTripper) http.RoundTripper

func TLSConfigFor

func TLSConfigFor(c *Config) (*tls.Config, error)

TLSConfigFor returns a tls.Config that will provide the transport level security defined by the provided Config. Will return nil if no transport level security is requested.

Types

type Config

type Config struct {
	// UserAgent is an optional field that specifies the caller of this
	// request.
	UserAgent string

	// The base TLS configuration for this transport.
	TLS TLSConfig

	// Username and password for basic authentication
	Username string
	Password string

	// Bearer token for authentication
	BearerToken string

	// Impersonate is the username that this Config will impersonate
	Impersonate string

	// Transport may be used for custom HTTP behavior. This attribute may
	// not be specified with the TLS client certificate options. Use
	// WrapTransport for most client level operations.
	Transport http.RoundTripper

	// WrapTransport will be invoked for custom HTTP behavior after the
	// underlying transport is initialized (either the transport created
	// from TLSClientConfig, Transport, or http.DefaultTransport). The
	// config may layer other RoundTrippers on top of the returned
	// RoundTripper.
	WrapTransport func(rt http.RoundTripper) http.RoundTripper
}

Config holds various options for establishing a transport.

func (*Config) HasBasicAuth

func (c *Config) HasBasicAuth() bool

HasBasicAuth returns whether the configuration has basic authentication or not.

func (*Config) HasCA

func (c *Config) HasCA() bool

HasCA returns whether the configuration has a certificate authority or not.

func (*Config) HasCertAuth

func (c *Config) HasCertAuth() bool

HasCertAuth returns whether the configuration has certificate authentication or not.

func (*Config) HasTokenAuth

func (c *Config) HasTokenAuth() bool

HasTokenAuth returns whether the configuration has token authentication or not.

type TLSConfig

type TLSConfig struct {
	CAFile   string // Path of the PEM-encoded server trusted root certificates.
	CertFile string // Path of the PEM-encoded client certificate.
	KeyFile  string // Path of the PEM-encoded client key.

	Insecure bool // Server should be accessed without verifying the certificate. For testing only.

	CAData   []byte // Bytes of the PEM-encoded server trusted root certificates. Supercedes CAFile.
	CertData []byte // Bytes of the PEM-encoded client certificate. Supercedes CertFile.
	KeyData  []byte // Bytes of the PEM-encoded client key. Supercedes KeyFile.
}

TLSConfig holds the information needed to set up a TLS transport.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL