auth

package
v1.9.14 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 13 Imported by: 0

README

Авторизация.

Пакет предоставляет два компонента для авторизация.

Базовая авторизация.

Компонент - BasicAuthComponent

Объект конфигурации.
type CredConfig struct {
    Creds []string `info:"secret"`
}

Описание полей:

Поле Описание Значение по умолчанию
Creds Список пар логин:пароль, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --server.http.auth.creds
- переменная окружения SERVER_HTTP_AUTH_CREDS
- значение в конфиг файле server.http.auth.creds
Авторизация по токену.

Компонент - TokenAuthComponent

Объект конфигурации.
type TokenConfig struct {
    HeaderName string
    Tokens     []string `info:"secret"`
}

Описание полей:

Поле Описание Значение по умолчанию
HeaderName Имя заголовка с токеном, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --server.http.auth.header_name
- переменная окружения SERVER_HTTP_AUTH_HEADER_NAME
- значение в конфиг файле server.http.auth.header_name
X-Auth-Token
Tokens Список доступных токенов, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --server.http.auth.tokens
- переменная окружения SERVER_HTTP_AUTH_TOKENS
- значение в конфиг файле server.http.auth.tokens

Documentation

Index

Constants

View Source
const (
	CredsFieldName      = "server.http.auth.creds"
	TokensFieldName     = "server.http.auth.tokens"
	HeaderNameFieldName = "server.http.auth.header_name"

	HeaderNameDefault = "X-Auth-Token"
)

Variables

View Source
var (
	BasicAuthComponent = &app.Component{
		Dependencies: app.Components{
			logger.Component,
			configurator.Component,
			reConfiguration.Component,
			router.Component,
		},
		Constructor: app.Constructor(func(container container.Container) error {
			return container.Provides(
				NewCredConfig,
				NewBasicReConfigurationWithConfigurator,
				func(auth *BasicReConfiguration) BasicAuth { return auth },
			)
		}),
		BindFlags: app.BindFlags(func(flagSet *pflag.FlagSet, container container.Container) error {
			return container.Invoke(func(config *CredConfig) {
				flagSet.StringSliceVar(&config.Creds, CredsFieldName, nil, "pairs login:password for basic authorization via http")
			})
		}),
		Run: app.Run(func(c container.Container) error {
			return c.Invoke(func(
				basic *BasicReConfiguration,
				reConfiguration reConfiguration.ReConfiguration,
				informer logger.Informer,
				router router.Router,
			) {
				reConfiguration.Registration(basic)
				informer.Info("http.client.middleware.auth.basic: registration in the reConfigurator")
			})
		}),
	}

	TokenAuthComponent = &app.Component{
		Dependencies: app.Components{
			logger.Component,
			configurator.Component,
			reConfiguration.Component,
			router.Component,
		},
		Constructor: app.Constructor(func(container container.Container) error {
			return container.Provides(
				NewTokenConfig,
				NewTokenReConfigurationWithConfigurator,
				func(auth *TokenReConfiguration) TokenAuth { return auth },
			)
		}),
		BindFlags: app.BindFlags(func(flagSet *pflag.FlagSet, container container.Container) error {
			return container.Invoke(func(config *TokenConfig) {
				flagSet.StringSliceVar(&config.Tokens, TokensFieldName, nil, "list of access tokens")
				flagSet.StringVar(&config.HeaderName, HeaderNameFieldName, HeaderNameDefault, "header name with token")
			})
		}),
		Run: app.Run(func(container container.Container) error {
			return container.Invoke(func(
				token *TokenReConfiguration,
				reConfiguration reConfiguration.ReConfiguration,
				informer logger.Informer,
				router router.Router,
			) {
				reConfiguration.Registration(token)
				informer.Info("http.client.middleware.auth.token: registration in the reConfigurator")
			})
		}),
	}
)

Functions

This section is empty.

Types

type Basic

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

func NewBasic

func NewBasic(creds ...*Cred) *Basic

func NewBasicWithConfigurator

func NewBasicWithConfigurator(config *CredConfig, configurator configurator.Configurator) *Basic

func (*Basic) Middleware

func (middleware *Basic) Middleware(next http.Handler) http.Handler

type BasicAuth added in v1.9.14

type BasicAuth router.Middleware

type BasicReConfiguration

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

func NewBasicReConfiguration

func NewBasicReConfiguration(informer logger.Informer, config *CredConfig) *BasicReConfiguration

func NewBasicReConfigurationWithConfigurator

func NewBasicReConfigurationWithConfigurator(informer logger.Informer, config *CredConfig, configurator configurator.Configurator) *BasicReConfiguration

func (*BasicReConfiguration) Middleware

func (reConfiguration *BasicReConfiguration) Middleware(next http.Handler) http.Handler

func (*BasicReConfiguration) ReConfiguration

func (reConfiguration *BasicReConfiguration) ReConfiguration(configurator configurator.Configurator) error

type Cred

type Cred struct {
	UserName string
	Password string
}

type CredConfig

type CredConfig struct {
	Creds []string `info:"secret"`
}

func BasicConfiguration

func BasicConfiguration(config *CredConfig, configurator configurator.Configurator) *CredConfig

func NewCredConfig

func NewCredConfig() *CredConfig

type Token

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

func NewToken

func NewToken(config *TokenConfig) *Token

func NewTokenWithConfigurator

func NewTokenWithConfigurator(config *TokenConfig, configurator configurator.Configurator) *Token

func (*Token) Middleware

func (middleware *Token) Middleware(next http.Handler) http.Handler

type TokenAuth added in v1.9.14

type TokenAuth router.Middleware

type TokenConfig

type TokenConfig struct {
	HeaderName string
	Tokens     []string `info:"secret"`
}

func NewTokenConfig

func NewTokenConfig() *TokenConfig

func TokenConfiguration

func TokenConfiguration(config *TokenConfig, configurator configurator.Configurator) *TokenConfig

type TokenReConfiguration

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

func NewTokenReConfiguration

func NewTokenReConfiguration(informer logger.Informer, config *TokenConfig) *TokenReConfiguration

func NewTokenReConfigurationWithConfigurator

func NewTokenReConfigurationWithConfigurator(informer logger.Informer, config *TokenConfig, configurator configurator.Configurator) *TokenReConfiguration

func (*TokenReConfiguration) Middleware

func (reConfiguration *TokenReConfiguration) Middleware(next http.Handler) http.Handler

func (*TokenReConfiguration) ReConfiguration

func (reConfiguration *TokenReConfiguration) ReConfiguration(configurator configurator.Configurator) error

Jump to

Keyboard shortcuts

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