basicauth

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2020 License: BSD-3-Clause Imports: 5 Imported by: 292

Documentation

Overview

Package basicauth provides http basic authentication via middleware. See _examples/auth/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