util

package
v0.0.0-...-fe75316 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2015 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

The digest package provides an implementation of http.RoundTripper that takes care of HTTP Digest Authentication (http://www.ietf.org/rfc/rfc2617.txt). This only implements the MD5 and "auth" portions of the RFC, but that covers the majority of avalible server side implementations including apache web server.

Example usage:

t := NewTransport("myUserName", "myP@55w0rd")
req, err := http.NewRequest("GET", "http://notreal.com/path?arg=1", nil)
if err != nil {
	return err
}
resp, err := t.RoundTrip(req)
if err != nil {
	return err
}

OR it can be used as a client:

c, err := t.Client()
if err != nil {
	return err
}
resp, err := c.Get("http://notreal.com/path?arg=1")
if err != nil {
	return err
}

Index

Constants

View Source
const (
	Delimiter = "="
)

Variables

View Source
var (
	ErrNilTransport      = errors.New("Transport is nil")
	ErrBadChallenge      = errors.New("Challenge is bad")
	ErrAlgNotImplemented = errors.New("Alg not implemented")
)

Functions

This section is empty.

Types

type Config

type Config map[string]string

func LoadConfigFromHome

func LoadConfigFromHome(configFileName string) (Config, error)

func (Config) GetCredentials

func (config Config) GetCredentials() (string, string)

type MMSAPI

type MMSAPI struct {
	// contains filtered or unexported fields
}

func NewMMSAPI

func NewMMSAPI(hostname string, timeout int, username string, apiKey string) (*MMSAPI, error)

func (*MMSAPI) GetAllHosts

func (api *MMSAPI) GetAllHosts(groupId string) ([]model.Host, error)

func (*MMSAPI) GetHostByName

func (api *MMSAPI) GetHostByName(groupId string, name string) (*model.Host, error)

func (*MMSAPI) GetHostDBMetric

func (api *MMSAPI) GetHostDBMetric(groupId string, hostId string, metricName string, dbName string) (*model.Metric, error)

func (*MMSAPI) GetHostMetric

func (api *MMSAPI) GetHostMetric(groupId string, hostId string, metricName string) (*model.Metric, error)

type Transport

type Transport struct {
	Username  string
	Password  string
	Transport http.RoundTripper
}

Transport is an implementation of http.RoundTripper that takes care of http digest authentication.

func NewTransport

func NewTransport(username, password string) *Transport

NewTransport creates a new digest transport using the http.DefaultTransport.

func (*Transport) Client

func (t *Transport) Client() (*http.Client, error)

Client returns an HTTP client that uses the digest transport.

func (*Transport) RoundTrip

func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip makes a request expecting a 401 response that will require digest authentication. It creates the credentials it needs and makes a follow-up request.

Jump to

Keyboard shortcuts

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