client

package
v3.8.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2022 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidClientOAuth2Config = errors.New("invalid OAuth2 configuration, all fields are required")
)

Functions

func CanCreateTCPConnection

func CanCreateTCPConnection(address string, config *Config) bool

CanCreateTCPConnection checks whether a connection can be established with a TCP endpoint

func CanPerformStartTLS

func CanPerformStartTLS(address string, config *Config) (connected bool, certificate *x509.Certificate, err error)

CanPerformStartTLS checks whether a connection can be established to an address using the STARTTLS protocol

func CanPerformTLS

func CanPerformTLS(address string, config *Config) (connected bool, certificate *x509.Certificate, err error)

CanPerformTLS checks whether a connection can be established to an address using the TLS protocol

func GetHTTPClient

func GetHTTPClient(config *Config) *http.Client

GetHTTPClient returns the shared HTTP client

func InjectHTTPClient added in v3.4.0

func InjectHTTPClient(httpClient *http.Client)

InjectHTTPClient is used to inject a custom HTTP client for testing purposes

func Ping

func Ping(address string, config *Config) (bool, time.Duration)

Ping checks if an address can be pinged and returns the round-trip time if the address can be pinged

Note that this function takes at least 100ms, even if the address is 127.0.0.1

Types

type Config

type Config struct {
	// Insecure determines whether to skip verifying the server's certificate chain and host name
	Insecure bool `yaml:"insecure,omitempty"`

	// IgnoreRedirect determines whether to ignore redirects (true) or follow them (false, default)
	IgnoreRedirect bool `yaml:"ignore-redirect,omitempty"`

	// Timeout for the client
	Timeout time.Duration `yaml:"timeout"`

	// OAuth2Config is the OAuth2 configuration used for the client.
	//
	// If non-nil, the http.Client returned by getHTTPClient will automatically retrieve a token if necessary.
	// See configureOAuth2 for more details.
	OAuth2Config *OAuth2Config `yaml:"oauth2,omitempty"`
	// contains filtered or unexported fields
}

Config is the configuration for clients

func GetDefaultConfig

func GetDefaultConfig() *Config

GetDefaultConfig returns a copy of the default configuration

func (*Config) HasOAuth2Config added in v3.7.0

func (c *Config) HasOAuth2Config() bool

HasOAuth2Config returns true if the client has OAuth2 configuration parameters

func (*Config) ValidateAndSetDefaults

func (c *Config) ValidateAndSetDefaults() error

ValidateAndSetDefaults validates the client configuration and sets the default values if necessary

type OAuth2Config added in v3.7.0

type OAuth2Config struct {
	TokenURL     string   `yaml:"token-url"` // e.g. https://dev-12345678.okta.com/token
	ClientID     string   `yaml:"client-id"`
	ClientSecret string   `yaml:"client-secret"`
	Scopes       []string `yaml:"scopes"` // e.g. ["openid"]
}

OAuth2Config is the configuration for the OAuth2 client credentials flow

Jump to

Keyboard shortcuts

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