oauth2-proxy/pkg/sessions/persistence/interfaces.go

22 lines
665 B
Go

package persistence
import (
"context"
"time"
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
)
// Store is used for persistent session stores (IE not Cookie)
// Implementing this interface allows it to easily use the persistence.Manager
// for session ticket + encryption details.
type Store interface {
Save(context.Context, string, []byte, time.Duration) error
Load(context.Context, string) ([]byte, error)
LoadList(ctx context.Context, key string) ([]string, error)
Clear(context.Context, string) error
Lock(key string) sessions.Lock
RPush(context.Context, string, string, time.Duration) error
VerifyConnection(context.Context) error
}