authcache

package
v3.27.0 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package authcache implements a cache for token auth to hold auth- results with cpu/mem inexpensive methods instead of always using secure but expensive methods to validate the token

Index

Constants

This section is empty.

Variables

View Source
var ErrUnauthorized = errors.New("unauthorized")

ErrUnauthorized denotes the token could not be found in any backend auth method and therefore is not an user

Functions

This section is empty.

Types

type AuthFunc

type AuthFunc func(token string) (modules []string, expiresAt time.Time, err error)

AuthFunc is a backend-function to resolve a token to a list of modules the token is authorized for, an expiry-time and an error. The error MUST be ErrUnauthorized in case the user is not found, if the error is another, the backend resolve will be cancelled and no further backends are queried.

type CacheEntry

type CacheEntry struct {
	AuthResult error // Allows for negative caching
	ExpiresAt  time.Time
	Modules    []string
}

CacheEntry represents an entry in the cache Service

type Service

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

Service manages the cached auth results

func New

func New(backends ...AuthFunc) *Service

New creates a new Service with the given backend methods to authenticate users

func (*Service) ValidateTokenFor

func (s *Service) ValidateTokenFor(token string, modules ...string) error

ValidateTokenFor checks backends whether the given token has access to the given modules and caches the result

Jump to

Keyboard shortcuts

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