@@ -284,10 +284,10 @@ def _set_source(self, source, fileformat):
284
284
285
285
def _do_local (self , kid ):
286
286
if self .fileformat in ["jwks" , "jwk" ]:
287
- self ._do_local_jwk (self .source )
287
+ updated , res = self ._do_local_jwk (self .source )
288
288
elif self .fileformat == "der" :
289
- self ._do_local_der (self .source , self .keytype , self .keyusage , kid )
290
- return self . _keys
289
+ updated , res = self ._do_local_der (self .source , self .keytype , self .keyusage , kid )
290
+ return res
291
291
292
292
def _local_update_required (self ) -> bool :
293
293
stat = os .stat (self .source )
@@ -386,18 +386,19 @@ def _do_local_jwk(self, filename):
386
386
:return: True if load was successful or False if file hasn't been modified
387
387
"""
388
388
if not self ._local_update_required ():
389
- return False
389
+ return False , None
390
390
391
391
LOGGER .info ("Reading local JWKS from %s" , filename )
392
392
with open (filename ) as input_file :
393
393
_info = json .load (input_file )
394
394
if "keys" in _info :
395
- self ._add_jwk_dicts (_info ["keys" ])
395
+ res = self .jwk_dicts_as_keys (_info ["keys" ])
396
396
else :
397
- self ._add_jwk_dicts ([_info ])
397
+ res = self .jwk_dicts_as_keys ([_info ])
398
+
398
399
self .last_local = time .time ()
399
400
self .time_out = self .last_local + self .cache_time
400
- return True
401
+ return True , res
401
402
402
403
def _do_local_der (self , filename , keytype , keyusage = None , kid = "" ):
403
404
"""
@@ -409,7 +410,7 @@ def _do_local_der(self, filename, keytype, keyusage=None, kid=""):
409
410
:return: True if load was successful or False if file hasn't been modified
410
411
"""
411
412
if not self ._local_update_required ():
412
- return False
413
+ return False , None
413
414
414
415
LOGGER .info ("Reading local DER from %s" , filename )
415
416
key_args = {}
@@ -430,10 +431,10 @@ def _do_local_der(self, filename, keytype, keyusage=None, kid=""):
430
431
if kid :
431
432
key_args ["kid" ] = kid
432
433
433
- self ._add_jwk_dicts ([key_args ])
434
+ res = self .jwk_dicts_as_keys ([key_args ])
434
435
self .last_local = time .time ()
435
436
self .time_out = self .last_local + self .cache_time
436
- return True
437
+ return True , res
437
438
438
439
def _do_remote (self ):
439
440
"""
@@ -553,9 +554,13 @@ def update(self):
553
554
try :
554
555
if self .local :
555
556
if self .fileformat in ["jwks" , "jwk" ]:
556
- updated = self ._do_local_jwk (self .source )
557
+ updated , k = self ._do_local_jwk (self .source )
558
+ if k :
559
+ self ._keys .extend (k )
557
560
elif self .fileformat == "der" :
558
- updated = self ._do_local_der (self .source , self .keytype , self .keyusage )
561
+ updated , k = self ._do_local_der (self .source , self .keytype , self .keyusage )
562
+ if k :
563
+ self ._keys .extend (k )
559
564
elif self .remote :
560
565
updated = self ._do_remote ()
561
566
except Exception as err :
0 commit comments