basic

package
v0.53.0 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package basic provides HTTP Basic authentication middleware and utilities.

Copyright 2019 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

Imported from https://golang.org/src/cmd/go/internal/auth/netrc.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddCredentials

func AddCredentials(req *http.Request) (added bool)

AddCredentials fills in the user's credentials for req, if any. The return value reports whether any matching credentials were found. This function uses the default package-level NetrcProvider for backward compatibility.

func AddCredentialsWithProvider added in v0.53.0

func AddCredentialsWithProvider(req *http.Request, provider *NetrcProvider) (added bool)

AddCredentialsWithProvider fills in the user's credentials for req using the specified provider. The return value reports whether any matching credentials were found.

Types

type AuthMap added in v0.37.0

type AuthMap map[string]BasicAuthPair

AuthMap is a user and password pair

func LoadBasicAuthFromFile

func LoadBasicAuthFromFile(filePath string) (AuthMap, error)

func LoadBasicAuthFromReader

func LoadBasicAuthFromReader(reader io.Reader) AuthMap

func LoadBasicAuthFromScanner

func LoadBasicAuthFromScanner(scanner *bufio.Scanner) AuthMap

func (AuthMap) AddUserWithHashedPassword added in v0.37.0

func (m AuthMap) AddUserWithHashedPassword(user, hashedPassword string)

AddUserWithHashedPassword if user already exists it will over ride it

func (AuthMap) AddUserWithPlainPassword added in v0.37.0

func (m AuthMap) AddUserWithPlainPassword(user, password string)

AddUserWithPlainPassword if user already exists it will over ride it

func (AuthMap) Authenticate added in v0.37.0

func (m AuthMap) Authenticate(user, password string) (bool, error)

Authenticate returns true if the user exists and the password is correct

func (AuthMap) UserExists added in v0.37.0

func (m AuthMap) UserExists(user string) bool

UserExists returns true if the user exists

type BasicAuthPair

type BasicAuthPair struct {
	User           string
	HashedPassword string
}

func NewBasicAuthPairWithPlainPassword

func NewBasicAuthPairWithPlainPassword(user, password string) (BasicAuthPair, error)

func (BasicAuthPair) VerifyPassword

func (p BasicAuthPair) VerifyPassword(password string) (bool, error)

type ClientAuth added in v0.40.0

type ClientAuth struct {
	Config ClientConfig
	// contains filtered or unexported fields
}

func (*ClientAuth) AddAuth added in v0.40.0

func (a *ClientAuth) AddAuth(req *http.Request) error

func (*ClientAuth) HTTPClient added in v0.40.0

func (a *ClientAuth) HTTPClient() *http.Client

type ClientConfig added in v0.37.0

type ClientConfig struct {
	// https://everything.curl.dev/usingcurl/netrc
	//
	// machine connect.lab.dioad.net
	// login blah
	// password blah
	NetRCFile string `mapstructure:"netrc-file"`
	User      string `mapstructure:"user"`
	Password  string `mapstructure:"password"`
}

type Handler added in v0.37.0

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

Handler implements basic authentication for HTTP servers.

func NewHandler added in v0.37.0

func NewHandler(cfg ServerConfig) (*Handler, error)

NewHandler creates a new Basic authentication handler from the provided configuration.

func NewHandlerWithMap added in v0.37.0

func NewHandlerWithMap(authMap AuthMap) (*Handler, error)

NewHandlerWithMap creates a new Basic authentication handler using the provided AuthMap.

func (*Handler) AuthRequest added in v0.37.0

func (h *Handler) AuthRequest(r *http.Request) (stdctx.Context, error)

AuthRequest authenticates an HTTP request using Basic authentication.

func (*Handler) Wrap added in v0.37.0

func (h *Handler) Wrap(handler http.Handler) http.Handler

Wrap wraps an HTTP handler with Basic authentication middleware.

type NetrcProvider added in v0.53.0

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

NetrcProvider manages netrc credentials and their loading. It encapsulates the state for loading and parsing netrc files, allowing for multiple independent instances with different configurations. This resolves the global state issue that made testing difficult.

func NewNetrcProviderFromContent added in v0.53.0

func NewNetrcProviderFromContent(content string) *NetrcProvider

NewNetrcProviderFromContent creates a NetrcProvider initialized with the given netrc content. This is useful for testing or when netrc data comes from a non-standard source.

type RoundTripper added in v0.40.0

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

func (*RoundTripper) RoundTrip added in v0.40.0

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

type ServerConfig added in v0.37.0

type ServerConfig struct {
	AllowInsecureHTTP bool     `mapstructure:"allow-insecure-http"`
	HTPasswdFile      string   `mapstructure:"htpasswd-file"`
	Users             []string `mapstructure:"users"`
	Realm             string   `mapstructure:"realm"`
}

Jump to

Keyboard shortcuts

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