persistent

package
v0.42.0-rc.8 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2024 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Option

type Option func(*cfg)

Option allows setting optional parameters of the TokenStore.

func WithEncryptionKey

func WithEncryptionKey(k *ecdsa.PrivateKey) Option

WithEncryptionKey return an option to encrypt private session keys using provided private key.

func WithLogger

func WithLogger(v *logger.Logger) Option

WithLogger returns an option to specify logger.

func WithTimeout

func WithTimeout(v time.Duration) Option

WithTimeout returns option to specify database connection timeout.

type TokenStore

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

TokenStore is a wrapper around persistent K:V db that allows creating (storing), retrieving and expiring (removing) session tokens.

func NewTokenStore

func NewTokenStore(path string, opts ...Option) (*TokenStore, error)

NewTokenStore creates, initializes and returns a new TokenStore instance.

The elements of the instance are stored in bolt DB.

func (*TokenStore) Close

func (s *TokenStore) Close() error

Close closes database connection.

func (*TokenStore) Create

Create inits a new private session token using information from corresponding request, saves it to bolt database (and encrypts private keys if storage has been configured so). Returns response that is filled with just created token's ID and public key for it.

func (*TokenStore) Get

func (s *TokenStore) Get(ownerID user.ID, tokenID []byte) (t *storage.PrivateToken)

Get returns private token corresponding to the given identifiers.

Returns nil is there is no element in storage.

func (*TokenStore) RemoveOld

func (s *TokenStore) RemoveOld(epoch uint64)

RemoveOld removes all tokens expired since provided epoch.

Jump to

Keyboard shortcuts

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