@@ -37,6 +37,7 @@ public class JwksKeyLocator extends LocatorAdapter<Key> {
3737 private final Duration connectTimeout ;
3838 private final Duration requestTimeout ;
3939 private final int keyTtl ;
40+ private final HttpClient httpClient ;
4041
4142 private final Map <String , CachedKey > keyResolutions = new ConcurrentHashMap <>();
4243 private final ReentrantLock cleanupLock = new ReentrantLock ();
@@ -46,6 +47,7 @@ private JwksKeyLocator(Builder builder) {
4647 this .connectTimeout = Objects .requireNonNull (builder .connectTimeout , "connectTimeout" );
4748 this .requestTimeout = Objects .requireNonNull (builder .requestTimeout , "requestTimeout" );
4849 this .keyTtl = builder .keyTtl ;
50+ this .httpClient = HttpClient .newBuilder ().connectTimeout (connectTimeout ).build ();
4951 }
5052
5153 public static Builder builder () {
@@ -75,12 +77,9 @@ private JwkInfoList computeKeyList() {
7577 final HttpResponse <InputStream > httpResponse ;
7678 try {
7779 httpResponse =
78- HttpClient .newBuilder ()
79- .connectTimeout (connectTimeout )
80- .build ()
81- .send (
82- HttpRequest .newBuilder (jwksUri ).GET ().timeout (requestTimeout ).build (),
83- BodyHandlers .ofInputStream ());
80+ httpClient .send (
81+ HttpRequest .newBuilder (jwksUri ).GET ().timeout (requestTimeout ).build (),
82+ BodyHandlers .ofInputStream ());
8483 } catch (HttpTimeoutException e ) {
8584 throw new JwtUnavailableException ("Failed to retrive jwk keys" , e );
8685 } catch (IOException e ) {
0 commit comments