Documentation ¶
Index ¶
Constants ¶
View Source
const TicketTTL = time.Second * 5
Variables ¶
View Source
var ErrKeyNotFound = errors.New("key not found")
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Enabled bool OIDC *OIDCConfig Ticket *TicketConfig }
type InMemStore ¶
type InMemStore struct {
// contains filtered or unexported fields
}
func NewInMemStore ¶
func NewInMemStore() *InMemStore
func (*InMemStore) Close ¶
func (s *InMemStore) Close() error
type NoopTokenVerifier ¶
type NoopTokenVerifier struct{}
type OIDCConfig ¶
type OIDCTokenVerifier ¶
type OIDCTokenVerifier struct {
// contains filtered or unexported fields
}
func NewOIDCTokenVerifier ¶
func NewOIDCTokenVerifier(ctx context.Context, cfg *OIDCConfig) (*OIDCTokenVerifier, error)
type RedisConfig ¶
type RedisStore ¶
type RedisStore struct {
// contains filtered or unexported fields
}
RedisStore is an implementation of TicketStore based on Redis.
func NewRedisStore ¶
func NewRedisStore(ctx context.Context, tp trace.TracerProvider, cfg *RedisConfig) (*RedisStore, error)
func (*RedisStore) Close ¶
func (s *RedisStore) Close() error
type TicketConfig ¶
type TicketConfig struct {
Redis *RedisConfig
}
type TicketProvider ¶
type TicketProvider struct {
// contains filtered or unexported fields
}
TicketProvider issues WebSocket authentication tickets.
func NewTicketProvider ¶
func NewTicketProvider(ctx context.Context, store TicketStore, rander io.Reader) *TicketProvider
NewTicketProvider creates a new TicketProvider. The provider is no-op when the store is nil.
func (*TicketProvider) Check ¶
func (t *TicketProvider) Check(ctx context.Context, ticket string) error
Check that a ticket is known to the provider, not including tickets that exceeded the time-to-live attribute.
func (*TicketProvider) Close ¶
func (t *TicketProvider) Close() error
Close closes the provider, releasing resources associated to the store.
type TicketStore ¶
type TicketStore interface { // SetEx persists a key with a timeout. SetEx(ctx context.Context, key string, ttl time.Duration) error // GetDel checks whether a key exists in the store. It returns // ErrKeyNotFound if the key was not found or expired. GetDel(ctx context.Context, key string) error // Close the client. Close() error }
TicketStore persists expirable tickets.
Click to show internal directories.
Click to hide internal directories.