Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AuthCache = NewUserAuthCache()
AuthCache is a global cache instance used to store and manage user authentication states efficiently.
var LocalCache = NewCache(5*time.Minute, 0)
LocalCache is a cache object with a default expiration duration of 5 minutes. Cleanup interval is set to 0 to avoid a globally running janitor. Specific subsystems (e.g., LDAP) should manage their own lifecycle-bound janitors.
Functions ¶
This section is empty.
Types ¶
type Cache
deprecated
added in
v1.7.3
type Cache struct {
*MemoryShardedCache
}
Cache is a custom in-memory cache implementation (kept for backward compatibility)
Deprecated: Use MemoryShardedCache instead.
func NewCache
deprecated
added in
v1.7.3
func (*Cache) DeleteExpired ¶ added in v1.7.3
func (c *Cache) DeleteExpired()
DeleteExpired delegates to MemoryShardedCache.DeleteExpired
type LRUCache ¶ added in v1.10.0
type LRUCache struct {
// contains filtered or unexported fields
}
LRUCache is a small, goroutine-safe LRU cache with per-entry TTL.
func NewLRU ¶ added in v1.10.0
NewLRU creates a new LRUCache with the given capacity. Capacity <= 0 disables caching.
func (*LRUCache) Len ¶ added in v1.10.0
Len returns the number of items currently stored in the LRU cache. This method is thread-safe.
func (*LRUCache) Set ¶ added in v1.10.0
Set inserts or updates a key with a value and TTL. ttl<=0 means no expiry.
func (*LRUCache) SetOnEvict ¶ added in v1.10.0
SetOnEvict registers a callback that will be invoked whenever an entry is evicted from the cache. The callback receives the key and value of the evicted entry.
type MemoryCacheShard ¶ added in v1.7.3
type MemoryCacheShard struct {
// contains filtered or unexported fields
}
MemoryCacheShard represents a single shard of the memory cache
type MemoryShardedCache ¶ added in v1.7.3
type MemoryShardedCache struct {
// contains filtered or unexported fields
}
MemoryShardedCache is a cache that is split into multiple shards to reduce mutex contention
func NewMemoryShardedCache ¶ added in v1.7.3
func NewMemoryShardedCache(numShards int, defaultExpiration, cleanupInterval time.Duration) *MemoryShardedCache
NewMemoryShardedCache creates a new sharded cache with the specified number of shards
func (*MemoryShardedCache) Delete ¶ added in v1.7.3
func (sc *MemoryShardedCache) Delete(k string)
Delete removes an item from the MemoryShardedCache
func (*MemoryShardedCache) DeleteExpired ¶ added in v1.7.3
func (sc *MemoryShardedCache) DeleteExpired()
DeleteExpired removes all expired items from the MemoryShardedCache
func (*MemoryShardedCache) Get ¶ added in v1.7.3
func (sc *MemoryShardedCache) Get(k string) (any, bool)
Get retrieves an item from the MemoryShardedCache
func (*MemoryShardedCache) Len ¶ added in v1.10.0
func (sc *MemoryShardedCache) Len() int
Len returns the total number of items currently stored across all shards.
func (*MemoryShardedCache) Set ¶ added in v1.7.3
func (sc *MemoryShardedCache) Set(k string, x any, d time.Duration)
Set adds an item to the MemoryShardedCache with the given expiration duration
func (*MemoryShardedCache) Stop ¶ added in v1.11.1
func (sc *MemoryShardedCache) Stop()
Stop stops the background janitor if it is running. It is safe to call multiple times.
type Resettable ¶ added in v1.7.3
type Resettable interface {
// Reset resets all fields of the object to their zero values
Reset()
}
Resettable is an interface for objects that can be reset Objects implementing this interface can be reset to their zero values This is useful for objects that are stored in a sync.Pool
type SimpleCache ¶ added in v1.10.0
type SimpleCache interface {
// Set stores a value in the cache with the specified key and an optional time-to-live (TTL) duration.
Set(key string, value any, ttl time.Duration)
// Get retrieves the value associated with the specified key from the cache. Returns the value and a boolean indicating presence.
Get(key string) (any, bool)
// Delete removes the value associated with the given key from the cache.
Delete(key string)
// Len returns the number of items currently stored in the cache.
Len() int
}
SimpleCache provides the tiny surface needed by callers without tying them to a specific cache impl.
type UserAuthCache ¶ added in v1.7.1
type UserAuthCache struct {
// contains filtered or unexported fields
}
UserAuthCache is a cache for authentication results It stores whether a user has been successfully authenticated It can be used by both LDAP and Lua backends
func NewUserAuthCache ¶ added in v1.7.1
func NewUserAuthCache() *UserAuthCache
NewUserAuthCache creates a new UserAuthCache
func (*UserAuthCache) Clear ¶ added in v1.7.1
func (c *UserAuthCache) Clear()
Clear removes all entries from the cache
func (*UserAuthCache) Delete ¶ added in v1.7.1
func (c *UserAuthCache) Delete(username string)
Delete removes an entry from the cache
func (*UserAuthCache) Get ¶ added in v1.7.1
func (c *UserAuthCache) Get(username string) (bool, bool)
Get retrieves an entry from the cache Returns the authentication status and whether the entry was found
func (*UserAuthCache) IsAuthenticated ¶ added in v1.7.1
func (c *UserAuthCache) IsAuthenticated(username string) bool
IsAuthenticated checks if a user is authenticated Returns true if the user is in the cache and authenticated
func (*UserAuthCache) Set ¶ added in v1.7.1
func (c *UserAuthCache) Set(username string, authenticated bool)
Set adds or updates an entry in the cache