basicauth

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2022 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package basicauth provides http basic authentication via middleware. See _examples/authentication/basicauth

Index

Constants

View Source
const (
	// DefaultBasicAuthRealm is "Authorization Required"
	DefaultBasicAuthRealm = "Authorization Required"
)

Variables

View Source
var DefaultExpireTime time.Time // 0001-01-01 00:00:00 +0000 UTC

DefaultExpireTime zero time

Functions

func Default

func Default(users map[string]string) context.Handler

Default accepts only the users and returns a new Handler which will ask the client for basic auth (username, password), validate that and if valid continues to the next handler, otherwise throws a StatusUnauthorized http error code.

func New

func New(c Config) context.Handler

New accepts basicauth.Config and returns a new Handler which will ask the client for basic auth (username, password), validate that and if valid continues to the next handler, otherwise throws a StatusUnauthorized http error code.

Types

type Config

type Config struct {
	// Users a map of login and the value (username/password)
	Users map[string]string
	// Realm http://tools.ietf.org/html/rfc2617#section-1.2. Default is "Authorization Required"
	Realm string
	// Expires expiration duration, default is 0 never expires
	Expires time.Duration

	// OnAsk fires each time the server asks to the client for credentials in order to gain access and continue to the next handler.
	//
	// You could also ignore this option and
	// - just add a listener for unauthorized status codes with:
	// `app.OnErrorCode(iris.StatusUnauthorized, unauthorizedWantsAccessHandler)`
	// - or register a middleware which will force `ctx.Next/or direct call`
	// the basicauth middleware and check its `ctx.GetStatusCode()`.
	//
	// However, this option is very useful when you want the framework to fire a handler
	// ONLY when the Basic Authentication sends an `iris.StatusUnauthorized`,
	// and free the error code listener to catch other types of unauthorized access, i.e Kerberos.
	// Also with this one, not recommended at all but, you are able to "force-allow" other users by calling the `ctx.StatusCode` inside this handler;
	// i.e when it is possible to create authorized users dynamically but
	// if that is the case then you should go with something like sessions instead of basic authentication.
	//
	// Usage: basicauth.New(basicauth.Config{..., OnAsk: unauthorizedWantsAccessViaBasicAuthHandler})
	//
	// Defaults to nil.
	OnAsk context.Handler
}

Config the configs for the basicauth middleware

func DefaultConfig

func DefaultConfig() Config

DefaultConfig returns the default configs for the BasicAuth middleware

func (Config) User

func (c Config) User(ctx context.Context) (string, string, bool)

User returns the user from context key same as ctx.Request().BasicAuth().

Jump to

Keyboard shortcuts

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