@@ -239,34 +239,68 @@ private void SetUserDetails(K8SConfiguration k8SConfig, Context activeContext)
239
239
240
240
if ( userDetails . UserCredentials . AuthProvider != null )
241
241
{
242
- if ( userDetails . UserCredentials . AuthProvider . Name == "azure" &&
243
- userDetails . UserCredentials . AuthProvider . Config != null &&
244
- userDetails . UserCredentials . AuthProvider . Config . ContainsKey ( "access-token" ) )
242
+ if ( userDetails . UserCredentials . AuthProvider . Config != null
243
+ && userDetails . UserCredentials . AuthProvider . Config . ContainsKey ( "access-token" ) )
245
244
{
246
- var config = userDetails . UserCredentials . AuthProvider . Config ;
247
- if ( config . ContainsKey ( "expires-on" ) )
245
+ switch ( userDetails . UserCredentials . AuthProvider . Name )
248
246
{
249
- var expiresOn = Int32 . Parse ( config [ "expires-on" ] ) ;
250
- DateTimeOffset expires ;
251
- #if NET452
252
- var epoch = new DateTimeOffset ( 1970 , 1 , 1 , 0 , 0 , 0 , TimeSpan . Zero ) ;
253
- expires = epoch . AddSeconds ( expiresOn ) ;
254
- #else
255
- expires = DateTimeOffset . FromUnixTimeSeconds ( expiresOn ) ;
256
- #endif
257
-
258
- if ( DateTimeOffset . Compare ( expires , DateTimeOffset . Now ) <= 0 )
247
+ case "azure" :
259
248
{
260
- var tenantId = config [ "tenant-id" ] ;
261
- var clientId = config [ "client-id" ] ;
262
- var apiServerId = config [ "apiserver-id" ] ;
263
- var refresh = config [ "refresh-token" ] ;
264
- var newToken = RenewAzureToken ( tenantId , clientId , apiServerId , refresh ) ;
265
- config [ "access-token" ] = newToken ;
249
+ var config = userDetails . UserCredentials . AuthProvider . Config ;
250
+ if ( config . ContainsKey ( "expires-on" ) )
251
+ {
252
+ var expiresOn = Int32 . Parse ( config [ "expires-on" ] ) ;
253
+ DateTimeOffset expires ;
254
+ #if NET452
255
+ var epoch = new DateTimeOffset ( 1970 , 1 , 1 , 0 , 0 , 0 , TimeSpan . Zero ) ;
256
+ expires = epoch . AddSeconds ( expiresOn ) ;
257
+ #else
258
+ expires = DateTimeOffset . FromUnixTimeSeconds ( expiresOn ) ;
259
+ #endif
260
+
261
+ if ( DateTimeOffset . Compare ( expires
262
+ , DateTimeOffset . Now )
263
+ <= 0 )
264
+ {
265
+ var tenantId = config [ "tenant-id" ] ;
266
+ var clientId = config [ "client-id" ] ;
267
+ var apiServerId = config [ "apiserver-id" ] ;
268
+ var refresh = config [ "refresh-token" ] ;
269
+ var newToken = RenewAzureToken ( tenantId
270
+ , clientId
271
+ , apiServerId
272
+ , refresh ) ;
273
+ config [ "access-token" ] = newToken ;
274
+ }
275
+ }
276
+
277
+ AccessToken = config [ "access-token" ] ;
278
+ userCredentialsFound = true ;
279
+ break ;
280
+ }
281
+ case "gcp" :
282
+ {
283
+ var config = userDetails . UserCredentials . AuthProvider . Config ;
284
+ const string keyExpire = "expiry" ;
285
+ if ( config . ContainsKey ( keyExpire ) )
286
+ {
287
+ if ( DateTimeOffset . TryParse ( config [ keyExpire ]
288
+ , out DateTimeOffset expires ) )
289
+ {
290
+ if ( DateTimeOffset . Compare ( expires
291
+ , DateTimeOffset . Now )
292
+ <= 0 )
293
+ {
294
+ throw new KubeConfigException ( "Refresh not supported." ) ;
295
+ }
296
+ }
297
+ }
298
+
299
+ AccessToken = config [ "access-token" ] ;
300
+ userCredentialsFound = true ;
301
+ break ;
266
302
}
267
303
}
268
- AccessToken = config [ "access-token" ] ;
269
- userCredentialsFound = true ;
270
304
}
271
305
}
272
306
0 commit comments