@@ -4,34 +4,35 @@ import (
4
4
"fmt"
5
5
"sync"
6
6
7
+ "github.com/redis-developer/go-redis-entraid/manager"
8
+ "github.com/redis-developer/go-redis-entraid/token"
7
9
"github.com/redis/go-redis/v9/auth"
8
10
)
9
11
10
- // entraidCredentialsProvider implements the auth.StreamingCredentialsProvider interface.
12
+ // Ensure entraidCredentialsProvider implements the auth.StreamingCredentialsProvider interface.
11
13
var _ auth.StreamingCredentialsProvider = (* entraidCredentialsProvider )(nil )
12
14
13
- // entraidCredentialsProvider is a struct that implements the CredentialProvider interface.
15
+ // entraidCredentialsProvider is a struct that implements the StreamingCredentialsProvider interface.
14
16
type entraidCredentialsProvider struct {
15
17
options CredentialsProviderOptions
16
18
17
- tokenManager TokenManager
18
- cancelTokenManager cancelFunc
19
+ tokenManager manager. TokenManager
20
+ cancelTokenManager manager. CancelFunc
19
21
20
22
// listeners is a slice of listeners that are notified when the token manager receives a new token.
21
23
listeners []auth.CredentialsListener
22
24
23
25
// rwLock is a mutex that is used to synchronize access to the listeners slice.
24
- // It is used to ensure that only one goroutine can access the listeners slice at a time.
25
26
rwLock sync.RWMutex
26
27
}
27
28
28
- // onTokenNext is a method that is called when the token manager receives a new token .
29
- func (e * entraidCredentialsProvider ) onTokenNext (token * Token ) {
29
+ // onTokenNext is a method that is called when the token manager receives a new manager .
30
+ func (e * entraidCredentialsProvider ) onTokenNext (t * token. Token ) {
30
31
e .rwLock .RLock ()
31
32
defer e .rwLock .RUnlock ()
32
- // Notify all listeners with the new token .
33
+ // Notify all listeners with the new manager .
33
34
for _ , listener := range e .listeners {
34
- listener .OnNext (token )
35
+ listener .OnNext (t )
35
36
}
36
37
}
37
38
@@ -63,7 +64,7 @@ func (e *entraidCredentialsProvider) Subscribe(listener auth.CredentialsListener
63
64
}
64
65
65
66
if ! alreadySubscribed {
66
- // Get the token from the identity provider.
67
+ // Get the manager from the identity provider.
67
68
e .listeners = append (e .listeners , listener )
68
69
}
69
70
e .rwLock .Unlock ()
@@ -102,30 +103,12 @@ func (e *entraidCredentialsProvider) Subscribe(listener auth.CredentialsListener
102
103
return token , cancel , nil
103
104
}
104
105
105
- type entraidTokenListener struct {
106
- cp * entraidCredentialsProvider
107
- }
108
-
109
- func tokenListenerFromCP (cp * entraidCredentialsProvider ) TokenListener {
110
- return & entraidTokenListener {
111
- cp ,
112
- }
113
- }
114
-
115
- func (l * entraidTokenListener ) OnTokenNext (token * Token ) {
116
- l .cp .onTokenNext (token )
117
- }
118
-
119
- func (l * entraidTokenListener ) OnTokenError (err error ) {
120
- l .cp .onTokenError (err )
121
- }
122
-
123
106
// newCredentialsProvider creates a new credentials provider.
124
107
// It takes a TokenManager and CredentialProviderOptions as arguments and returns a StreamingCredentialsProvider interface.
125
- // The TokenManager is used to obtain the token , and the CredentialProviderOptions contains options for the credentials provider.
108
+ // The TokenManager is used to obtain the manager , and the CredentialProviderOptions contains options for the credentials provider.
126
109
// The credentials provider is responsible for managing the credentials and refreshing them when necessary.
127
110
// It returns an error if the token manager cannot be started.
128
- func newCredentialsProvider (tokenManager TokenManager , options CredentialsProviderOptions ) (auth.StreamingCredentialsProvider , error ) {
111
+ func newCredentialsProvider (tokenManager manager. TokenManager , options CredentialsProviderOptions ) (auth.StreamingCredentialsProvider , error ) {
129
112
cp := & entraidCredentialsProvider {
130
113
tokenManager : tokenManager ,
131
114
options : options ,
0 commit comments