33
44namespace Ydb . Sdk . Auth ;
55
6- public class TokenManagerCredentialsProvider : ICredentialsProvider
6+ public class CachedCredentialsProvider : ICredentialsProvider
77{
88 private readonly IClock _clock ;
99 private readonly IAuthClient _authClient ;
1010
11- private ILogger < TokenManagerCredentialsProvider > Logger { get ; }
11+ private ILogger < CachedCredentialsProvider > Logger { get ; }
1212
1313 private volatile ITokenState _tokenState ;
1414
15- public TokenManagerCredentialsProvider (
15+ public CachedCredentialsProvider (
1616 IAuthClient authClient ,
1717 ILoggerFactory ? loggerFactory = null
1818 )
@@ -23,10 +23,10 @@ public TokenManagerCredentialsProvider(
2323 _tokenState . Init ( ) ;
2424
2525 loggerFactory ??= new NullLoggerFactory ( ) ;
26- Logger = loggerFactory . CreateLogger < TokenManagerCredentialsProvider > ( ) ;
26+ Logger = loggerFactory . CreateLogger < CachedCredentialsProvider > ( ) ;
2727 }
2828
29- internal TokenManagerCredentialsProvider ( IAuthClient authClient , IClock clock ) : this ( authClient )
29+ internal CachedCredentialsProvider ( IAuthClient authClient , IClock clock ) : this ( authClient )
3030 {
3131 _clock = clock ;
3232 }
@@ -59,12 +59,12 @@ void Init()
5959
6060 private class ActiveState : ITokenState
6161 {
62- private readonly TokenManagerCredentialsProvider _tokenManagerCredentialsProvider ;
62+ private readonly CachedCredentialsProvider _cachedCredentialsProvider ;
6363
64- public ActiveState ( TokenResponse tokenResponse , TokenManagerCredentialsProvider tokenManagerCredentialsProvider )
64+ public ActiveState ( TokenResponse tokenResponse , CachedCredentialsProvider cachedCredentialsProvider )
6565 {
6666 TokenResponse = tokenResponse ;
67- _tokenManagerCredentialsProvider = tokenManagerCredentialsProvider ;
67+ _cachedCredentialsProvider = cachedCredentialsProvider ;
6868 }
6969
7070 public TokenResponse TokenResponse { get ; }
@@ -74,34 +74,34 @@ public async ValueTask<ITokenState> Validate(DateTime now)
7474 if ( now < TokenResponse . ExpiredAt )
7575 {
7676 return now >= TokenResponse . RefreshAt
77- ? _tokenManagerCredentialsProvider . UpdateState (
77+ ? _cachedCredentialsProvider . UpdateState (
7878 this ,
79- new BackgroundState ( TokenResponse , _tokenManagerCredentialsProvider )
79+ new BackgroundState ( TokenResponse , _cachedCredentialsProvider )
8080 )
8181 : this ;
8282 }
8383
84- _tokenManagerCredentialsProvider . Logger . LogWarning (
84+ _cachedCredentialsProvider . Logger . LogWarning (
8585 "Token has expired. ExpiredAt: {ExpiredAt}, CurrentTime: {CurrentTime}. " +
8686 "Switching to synchronous state to fetch a new token" ,
8787 TokenResponse . ExpiredAt , now
8888 ) ;
8989
90- return await _tokenManagerCredentialsProvider
91- . UpdateState ( this , new SyncState ( _tokenManagerCredentialsProvider ) )
90+ return await _cachedCredentialsProvider
91+ . UpdateState ( this , new SyncState ( _cachedCredentialsProvider ) )
9292 . Validate ( now ) ;
9393 }
9494 }
9595
9696 private class SyncState : ITokenState
9797 {
98- private readonly TokenManagerCredentialsProvider _tokenManagerCredentialsProvider ;
98+ private readonly CachedCredentialsProvider _cachedCredentialsProvider ;
9999
100100 private volatile Task < TokenResponse > _fetchTokenTask = null ! ;
101101
102- public SyncState ( TokenManagerCredentialsProvider tokenManagerCredentialsProvider )
102+ public SyncState ( CachedCredentialsProvider cachedCredentialsProvider )
103103 {
104- _tokenManagerCredentialsProvider = tokenManagerCredentialsProvider ;
104+ _cachedCredentialsProvider = cachedCredentialsProvider ;
105105 }
106106
107107 public TokenResponse TokenResponse =>
@@ -113,37 +113,37 @@ public async ValueTask<ITokenState> Validate(DateTime now)
113113 {
114114 var tokenResponse = await _fetchTokenTask ;
115115
116- _tokenManagerCredentialsProvider . Logger . LogDebug (
116+ _cachedCredentialsProvider . Logger . LogDebug (
117117 "Successfully fetched token at {Timestamp}. ExpiredAt: {ExpiredAt}, RefreshAt: {RefreshAt}" ,
118118 DateTime . Now , tokenResponse . ExpiredAt , tokenResponse . RefreshAt
119119 ) ;
120120
121- return _tokenManagerCredentialsProvider . UpdateState ( this ,
122- new ActiveState ( tokenResponse , _tokenManagerCredentialsProvider ) ) ;
121+ return _cachedCredentialsProvider . UpdateState ( this ,
122+ new ActiveState ( tokenResponse , _cachedCredentialsProvider ) ) ;
123123 }
124124 catch ( Exception e )
125125 {
126- _tokenManagerCredentialsProvider . Logger . LogCritical ( e , "Error on authentication token update" ) ;
126+ _cachedCredentialsProvider . Logger . LogCritical ( e , "Error on authentication token update" ) ;
127127
128- return _tokenManagerCredentialsProvider . UpdateState ( this ,
129- new ErrorState ( e , _tokenManagerCredentialsProvider ) ) ;
128+ return _cachedCredentialsProvider . UpdateState ( this ,
129+ new ErrorState ( e , _cachedCredentialsProvider ) ) ;
130130 }
131131 }
132132
133- public void Init ( ) => _fetchTokenTask = _tokenManagerCredentialsProvider . FetchToken ( ) ;
133+ public void Init ( ) => _fetchTokenTask = _cachedCredentialsProvider . FetchToken ( ) ;
134134 }
135135
136136 private class BackgroundState : ITokenState
137137 {
138- private readonly TokenManagerCredentialsProvider _tokenManagerCredentialsProvider ;
138+ private readonly CachedCredentialsProvider _cachedCredentialsProvider ;
139139
140140 private volatile Task < TokenResponse > _fetchTokenTask = null ! ;
141141
142142 public BackgroundState ( TokenResponse tokenResponse ,
143- TokenManagerCredentialsProvider tokenManagerCredentialsProvider )
143+ CachedCredentialsProvider cachedCredentialsProvider )
144144 {
145145 TokenResponse = tokenResponse ;
146- _tokenManagerCredentialsProvider = tokenManagerCredentialsProvider ;
146+ _cachedCredentialsProvider = cachedCredentialsProvider ;
147147 }
148148
149149 public TokenResponse TokenResponse { get ; }
@@ -152,22 +152,22 @@ public async ValueTask<ITokenState> Validate(DateTime now)
152152 {
153153 if ( _fetchTokenTask . IsCanceled || _fetchTokenTask . IsFaulted )
154154 {
155- _tokenManagerCredentialsProvider . Logger . LogWarning (
155+ _cachedCredentialsProvider . Logger . LogWarning (
156156 "Fetching token task failed. Status: {Status}, Retrying login..." ,
157157 _fetchTokenTask . IsCanceled ? "Canceled" : "Faulted"
158158 ) ;
159159
160160 return now >= TokenResponse . ExpiredAt
161- ? _tokenManagerCredentialsProvider
162- . UpdateState ( this , new SyncState ( _tokenManagerCredentialsProvider ) )
163- : _tokenManagerCredentialsProvider
164- . UpdateState ( this , new BackgroundState ( TokenResponse , _tokenManagerCredentialsProvider ) ) ;
161+ ? _cachedCredentialsProvider
162+ . UpdateState ( this , new SyncState ( _cachedCredentialsProvider ) )
163+ : _cachedCredentialsProvider
164+ . UpdateState ( this , new BackgroundState ( TokenResponse , _cachedCredentialsProvider ) ) ;
165165 }
166166
167167 if ( _fetchTokenTask . IsCompleted )
168168 {
169- return _tokenManagerCredentialsProvider
170- . UpdateState ( this , new ActiveState ( await _fetchTokenTask , _tokenManagerCredentialsProvider ) ) ;
169+ return _cachedCredentialsProvider
170+ . UpdateState ( this , new ActiveState ( await _fetchTokenTask , _cachedCredentialsProvider ) ) ;
171171 }
172172
173173 if ( now < TokenResponse . ExpiredAt )
@@ -179,32 +179,32 @@ public async ValueTask<ITokenState> Validate(DateTime now)
179179 {
180180 var tokenResponse = await _fetchTokenTask ;
181181
182- _tokenManagerCredentialsProvider . Logger . LogDebug (
182+ _cachedCredentialsProvider . Logger . LogDebug (
183183 "Successfully fetched token. ExpiredAt: {ExpiredAt}, RefreshAt: {RefreshAt}" ,
184184 tokenResponse . ExpiredAt , tokenResponse . RefreshAt
185185 ) ;
186186
187- return _tokenManagerCredentialsProvider . UpdateState ( this ,
188- new ActiveState ( tokenResponse , _tokenManagerCredentialsProvider ) ) ;
187+ return _cachedCredentialsProvider . UpdateState ( this ,
188+ new ActiveState ( tokenResponse , _cachedCredentialsProvider ) ) ;
189189 }
190190 catch ( Exception e )
191191 {
192- _tokenManagerCredentialsProvider . Logger . LogCritical ( e , "Error on authentication token update" ) ;
192+ _cachedCredentialsProvider . Logger . LogCritical ( e , "Error on authentication token update" ) ;
193193
194- return _tokenManagerCredentialsProvider . UpdateState ( this ,
195- new ErrorState ( e , _tokenManagerCredentialsProvider ) ) ;
194+ return _cachedCredentialsProvider . UpdateState ( this ,
195+ new ErrorState ( e , _cachedCredentialsProvider ) ) ;
196196 }
197197 }
198198
199- public void Init ( ) => _fetchTokenTask = _tokenManagerCredentialsProvider . FetchToken ( ) ;
199+ public void Init ( ) => _fetchTokenTask = _cachedCredentialsProvider . FetchToken ( ) ;
200200 }
201201
202202 private class ErrorState : ITokenState
203203 {
204204 private readonly Exception _exception ;
205- private readonly TokenManagerCredentialsProvider _managerCredentialsProvider ;
205+ private readonly CachedCredentialsProvider _managerCredentialsProvider ;
206206
207- public ErrorState ( Exception exception , TokenManagerCredentialsProvider managerCredentialsProvider )
207+ public ErrorState ( Exception exception , CachedCredentialsProvider managerCredentialsProvider )
208208 {
209209 _exception = exception ;
210210 _managerCredentialsProvider = managerCredentialsProvider ;
0 commit comments