1
0
mirror of https://github.com/redis/go-redis.git synced 2025-04-19 07:22:17 +03:00

add streamingcredentialsprovider in options

This commit is contained in:
Nedyalko Dyakov 2025-03-24 16:39:40 +02:00
parent df9bfce954
commit 140a278bb8
No known key found for this signature in database
GPG Key ID: 5571106A08EA25A3
2 changed files with 22 additions and 10 deletions

View File

@ -13,6 +13,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/redis/go-redis/v9/auth"
"github.com/redis/go-redis/v9/internal/pool" "github.com/redis/go-redis/v9/internal/pool"
) )
@ -74,6 +75,14 @@ type Options struct {
// There will be a conflict between them; if CredentialsProviderContext exists, we will ignore CredentialsProvider. // There will be a conflict between them; if CredentialsProviderContext exists, we will ignore CredentialsProvider.
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error) CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
// StreamingCredentialsProvider is used to retrieve the credentials
// for the connection from an external source. Those credentials may change
// during the connection lifetime. This is useful for managed identity
// scenarios where the credentials are retrieved from an external source.
//
// Currently, this is a placeholder for the future implementation.
StreamingCredentialsProvider auth.StreamingCredentialsProvider
// DB is the database to be selected after connecting to the server. // DB is the database to be selected after connecting to the server.
DB int DB int

View File

@ -14,6 +14,7 @@ import (
"sync/atomic" "sync/atomic"
"time" "time"
"github.com/redis/go-redis/v9/auth"
"github.com/redis/go-redis/v9/internal" "github.com/redis/go-redis/v9/internal"
"github.com/redis/go-redis/v9/internal/hashtag" "github.com/redis/go-redis/v9/internal/hashtag"
"github.com/redis/go-redis/v9/internal/pool" "github.com/redis/go-redis/v9/internal/pool"
@ -71,6 +72,7 @@ type ClusterOptions struct {
Password string Password string
CredentialsProvider func() (username string, password string) CredentialsProvider func() (username string, password string)
CredentialsProviderContext func(ctx context.Context) (username string, password string, err error) CredentialsProviderContext func(ctx context.Context) (username string, password string, err error)
StreamingCredentialsProvider auth.StreamingCredentialsProvider
MaxRetries int MaxRetries int
MinRetryBackoff time.Duration MinRetryBackoff time.Duration
@ -296,6 +298,7 @@ func (opt *ClusterOptions) clientOptions() *Options {
Password: opt.Password, Password: opt.Password,
CredentialsProvider: opt.CredentialsProvider, CredentialsProvider: opt.CredentialsProvider,
CredentialsProviderContext: opt.CredentialsProviderContext, CredentialsProviderContext: opt.CredentialsProviderContext,
StreamingCredentialsProvider: opt.StreamingCredentialsProvider,
MaxRetries: opt.MaxRetries, MaxRetries: opt.MaxRetries,
MinRetryBackoff: opt.MinRetryBackoff, MinRetryBackoff: opt.MinRetryBackoff,